1 回答

TA貢獻1757條經(jīng)驗 獲得超7個贊
關于代碼的一些注釋:
處理錯誤。
defer connection.Close()
在handleConnection
. 否則,連接不會關閉,直到程序終止。將兩行代碼
handleConnection
移出for循環(huán),丟棄for循環(huán)。循環(huán)沒有做任何事情。添加
defer fileWriter.Flush()
以刷新寫入器中緩沖的任何最后一位數(shù)據(jù)(但請參閱下一點)。要求文件直接從連接中復制。
這是代碼:
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 關注
- 86 瀏覽
添加回答
舉報