为了账号安全,请及时绑定邮箱和手机立即绑定

golang的net.Conn.Read如何停止读取?

golang的net.Conn.Read如何停止读取?

Go
哈士奇WWW 2021-04-09 18:15:09
我正在尝试编写一个基于套接字的简单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关闭,或者可能是超时,依此类推。


查看完整回答
反对 回复 2021-04-19
  • 2 回答
  • 0 关注
  • 743 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信