我正在嘗試編寫一個基于套接字的簡單go服務器。我只是想知道如何連接。下面的內容知道什么時候停止閱讀。(注意:這不是我的代碼,例如,我從Go中的Unix套接字復制了它)package mainimport ( "log" "net")func echoServer(c net.Conn) { for { buf := make([]byte, 512) nr, err := c.Read(buf) if err != nil { return } data := buf[0:nr] println("Server got:", string(data)) _, err = c.Write(data) if err != nil { log.Fatal("Write: ", err) } }}func main() { l, err := net.Listen("unix", "/tmp/echo.sock") if err != nil { log.Fatal("listen error:", err) } for { fd, err := l.Accept() if err != nil { log.Fatal("accept error:", err) } go echoServer(fd) } }是EOF角色還是其他?如果有人可以指向我指向官方go docs鏈接,這將非常有幫助。謝謝。
2 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
當其基礎實現遇到任何錯誤時,它將停止讀取。錯誤可能是實際的I / O錯誤,或者可能是操作系統信號連接被io.EOF關閉,或者可能是超時,依此類推。
- 2 回答
- 0 關注
- 776 瀏覽