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 關注
- 88 瀏覽
添加回答
舉報