我想在golang中通过TCP发送文件。这是我的服务器代码:
我的问题是:按照这种方式,客户端无法接收文件的EOF信号。因此,io.Copy会阻塞。我必须调用c.CloseWrite来通知客户端文件已经结束。
如果我想发送文件,这种方法就不起作用了,我该怎么解决?
c is connected *net.TCPConn
file, _ := os.Open(fn)
defer file.Close()
io.Copy(c, file)
// c.CloseWrite()
以及客户端:
as above, c is connected *net.TCPConn
file, _ := os.Create("file.txt")
defer file.Close()
io.Copy(file, c)
我的问题是:按照这种方式,客户端无法接收文件的EOF信号。因此,io.Copy会阻塞。我必须调用c.CloseWrite来通知客户端文件已经结束。
如果我想发送文件,这种方法就不起作用了,我该怎么解决?