1 回答
TA贡献1757条经验 获得超7个赞
关于代码的一些注释:
处理错误。
defer connection.Close()
在handleConnection
. 否则,连接不会关闭,直到程序终止。将两行代码
handleConnection
移出for循环,丢弃for循环。循环没有做任何事情。添加
defer fileWriter.Flush()
以刷新写入器中缓冲的任何最后一位数据(但请参阅下一点)。要求文件直接从连接中复制。
这是代码:
func main() {
listen, err := net.Listen("tcp4", ":8080")
if err != nil {
log.Fatal(err)
}
defer listen.Close()
for {
connection, err := listen.Accept()
if err != nil {
log.Fatal(err)
}
go handleConnection(connection, "myfile.dat")
}
}
func handleConnection(connection net.Conn, myFile string) {
defer connection.Close()
outputFile, err := os.Create(myFile)
if err != nil {
log.Fatal(err)
}
defer outputFile.Close()
_, err = outputFile.ReadFrom(connection)
if err != nil {
log.Fatal(err)
}
}
- 1 回答
- 0 关注
- 63 浏览
添加回答
举报