Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 196a469c34 | |||
| 7d30c2ddc9 |
+1
-1
@@ -4,7 +4,7 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Version string = "0.1.15"
|
var Version string = "0.1.16"
|
||||||
|
|
||||||
var Maincmd = &cobra.Command{
|
var Maincmd = &cobra.Command{
|
||||||
Use: "",
|
Use: "",
|
||||||
|
|||||||
+24
-11
@@ -146,7 +146,7 @@ func init() {
|
|||||||
tcpcmd.AddCommand(tcpsendcmd, tcprecvcmd)
|
tcpcmd.AddCommand(tcpsendcmd, tcprecvcmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
var cansend bool = false
|
var cansend, backsck bool = false, false
|
||||||
var tcpsendcmd = &cobra.Command{
|
var tcpsendcmd = &cobra.Command{
|
||||||
Use: "send",
|
Use: "send",
|
||||||
Short: "通过tcp发送文件",
|
Short: "通过tcp发送文件",
|
||||||
@@ -181,6 +181,8 @@ var tcpsendcmd = &cobra.Command{
|
|||||||
data := string(buf[0:n])
|
data := string(buf[0:n])
|
||||||
if data == "oksend!" {
|
if data == "oksend!" {
|
||||||
cansend = true
|
cansend = true
|
||||||
|
} else if data == "backsck" {
|
||||||
|
backsck = true
|
||||||
} else {
|
} else {
|
||||||
fmt.Println(data)
|
fmt.Println(data)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
@@ -222,7 +224,7 @@ func tcpupload(file, prefix string, mytcp net.Conn) error {
|
|||||||
time.Sleep(time.Millisecond * 100)
|
time.Sleep(time.Millisecond * 100)
|
||||||
sakura++
|
sakura++
|
||||||
if sakura > 50 {
|
if sakura > 50 {
|
||||||
mytcp.Write([]byte{1, 9, 9, 6, 1, 1, 2, 7, 6, 6, 6, 1, 1, 2, 7})
|
mytcp.Write([]byte{1, 9, 9, 6, 1, 1, 2, 7})
|
||||||
time.Sleep(time.Millisecond * 100)
|
time.Sleep(time.Millisecond * 100)
|
||||||
mytcp.Write([]byte("victorique&" + stat.Name() + "&" + prefix))
|
mytcp.Write([]byte("victorique&" + stat.Name() + "&" + prefix))
|
||||||
}
|
}
|
||||||
@@ -230,13 +232,16 @@ func tcpupload(file, prefix string, mytcp net.Conn) error {
|
|||||||
cansend = false
|
cansend = false
|
||||||
sum := 0
|
sum := 0
|
||||||
for {
|
for {
|
||||||
buf := make([]byte, 1048576)
|
buf := make([]byte, 524288)
|
||||||
n, err := fpsrc.Read(buf)
|
n, err := fpsrc.Read(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
time.Sleep(time.Millisecond * 8)
|
|
||||||
err = nil
|
err = nil
|
||||||
mytcp.Write([]byte{1, 9, 9, 6, 1, 1, 2, 7, 6, 6, 6, 1, 1, 2, 7})
|
mytcp.Write([]byte{1, 9, 9, 6, 1, 1, 2, 7})
|
||||||
|
for !backsck {
|
||||||
|
time.Sleep(time.Millisecond * 150)
|
||||||
|
}
|
||||||
|
backsck = false
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
@@ -252,7 +257,6 @@ func tcpupload(file, prefix string, mytcp net.Conn) error {
|
|||||||
}
|
}
|
||||||
fmt.Printf("当前已传输:%f\n\n", 100.000000)
|
fmt.Printf("当前已传输:%f\n\n", 100.000000)
|
||||||
fpsrc.Close()
|
fpsrc.Close()
|
||||||
time.Sleep(time.Millisecond * 8)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -343,7 +347,7 @@ var tcprecvcmd = &cobra.Command{
|
|||||||
defer conns.Close()
|
defer conns.Close()
|
||||||
var sum int
|
var sum int
|
||||||
for {
|
for {
|
||||||
buf := make([]byte, 1048576)
|
buf := make([]byte, 393216)
|
||||||
n, err := conns.Read(buf)
|
n, err := conns.Read(buf)
|
||||||
|
|
||||||
if !canrecv {
|
if !canrecv {
|
||||||
@@ -360,10 +364,13 @@ var tcprecvcmd = &cobra.Command{
|
|||||||
canrecv = true
|
canrecv = true
|
||||||
name = str[1]
|
name = str[1]
|
||||||
prefix := str[2]
|
prefix := str[2]
|
||||||
|
if runtime.GOOS != "windows" {
|
||||||
|
prefix = strings.Replace(prefix, "\\", "/", -1)
|
||||||
|
}
|
||||||
if prefix == "" {
|
if prefix == "" {
|
||||||
fpdst, err = os.Create("./" + name)
|
fpdst, err = os.Create("./" + name)
|
||||||
} else {
|
} else {
|
||||||
fpdst, err = os.Create(prefix + "/" + name)
|
fpdst, err = os.Create(prefix + name)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
@@ -377,20 +384,26 @@ var tcprecvcmd = &cobra.Command{
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if n == 15 {
|
if buf[n-1] == byte(7) && buf[n-2] == byte(2) && buf[n-3] == byte(1) {
|
||||||
ok := func() bool {
|
ok := func() bool {
|
||||||
for k, v := range []byte{1, 9, 9, 6, 1, 1, 2, 7, 6, 6, 6, 1, 1, 2, 7} {
|
for k, v := range []byte{1, 9, 9, 6, 1, 1, 2, 7} {
|
||||||
if buf[k] != v {
|
if buf[n-8+k] != v {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}()
|
}()
|
||||||
if ok {
|
if ok {
|
||||||
|
if n > 8 {
|
||||||
|
fpdst.Write(buf[0 : n-8])
|
||||||
|
sum += n - 8
|
||||||
|
}
|
||||||
fmt.Printf("已写入:%d 字节\n", sum)
|
fmt.Printf("已写入:%d 字节\n", sum)
|
||||||
fmt.Println(name + "接收成功\n")
|
fmt.Println(name + "接收成功\n")
|
||||||
fpdst.Close()
|
fpdst.Close()
|
||||||
canrecv = false
|
canrecv = false
|
||||||
|
sum = 0
|
||||||
|
conns.Write([]byte("backsck"))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user