Browse Source

文件发送方式修改为udp模式

master
453530270@qq.com 1 year ago
parent
commit
df465d1adb
  1. 2
      fss/README.md
  2. 40
      fss/core/sendzip.go
  3. BIN
      fss/fss
  4. 2
      fss/util/fsutil.go

2
fss/README.md

@ -0,0 +1,2 @@
./fss -t /sss/
末尾的/ 需要加上,未加上末尾/ 的话,会导致 将目录也打包进入

40
fss/core/sendzip.go

@ -4,8 +4,10 @@ import (
"fmt"
"fss/config"
"fss/util"
"io"
"net"
"net/http"
"os"
"path"
"path/filepath"
"strings"
@ -70,7 +72,7 @@ func SendZip(w http.ResponseWriter, r *http.Request) {
// udp 模式发送文件
/*
* serip 服务器ip,
* absfilepath 发送文件的时间路径,
* absfilepath 发送文件的实际路径,
* fname 文件名
* message 携带部分信息的消息
* http.ResponseWriter
@ -88,15 +90,35 @@ func UdpSendFile(serip string, absfilepath string, fname string, message string,
return
}
defer conn.Close()
// 3、读取文件
zf, err := os.Open(absfilepath)
if err != nil {
return
}
defer zf.Close()
// 4、 循环读取,写入
buf := make([]byte, 4096)
for {
n, err := zf.Read(buf)
if err != nil {
if err == io.EOF {
fmt.Println("文件发送完毕")
} else {
fmt.Printf("zf read err:%s\n", err)
}
return
}
conn.Write(buf[:n])
}
// 3、在端口发送数据
//message := fmt.Sprintf("%s%s%s", config.G.DeviceName, "|", "sender")
// message := fmt.Sprintf("%s%s%s", config.G.DeviceName, "|", "sender")
// 向链接通道发送数据 数据包头
conn.Write([]byte(message))
// conn.Write([]byte(message))
// 发送文件
go func() {
err := util.SendFiles(absfilepath, fmt.Sprintf("http://%s", remoteAddr))
if err != nil {
fmt.Printf("Send file to %s error: %s\n", remoteAddr, err)
}
}()
// go func() {
// err := util.SendFiles(absfilepath, fmt.Sprintf("http://%s/rc", remoteAddr))
// if err != nil {
// fmt.Printf("Send file to %s error: %s\n", remoteAddr, err)
// }
// }()
}

BIN
fss/fss

Binary file not shown.

2
fss/util/fsutil.go

@ -315,7 +315,7 @@ func CompressToZip(dest string, currentPath string, paths []string) error {
if dir, err := os.Getwd(); err == nil {
filesPath = dir + "/sync_zips/"
}
if err := os.MkdirAll(filesPath, 0755); err != nil {
if err := os.MkdirAll(filesPath, os.ModePerm); err != nil {
fmt.Println(err.Error())
}
// ToSlash 过滤windows的斜杠引起的bug

Loading…
Cancel
Save