我正在尝试编写一个基于套接字的简单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 关注
- 743 浏览
添加回答
举报
0/150
提交
取消