在golang中TCPConn.Write/Readreturn会有什么错误?

In golang what error will TCPConn.Write/Read return?

在golang中,你会如何处理TCPConn.Read/Write的错误return? 这个 document 并没有说明 read/write 错误。

ReadWriteTCPConn 上可能会 return 大多数错误,而您的 OS、硬件和驱动程序的组合可能 return,以及一些 net 包错误,以及 io.EOF(如果适用)。因此,真正由您决定要查找哪些错误以及如何处理它们。网络的每一层 API,甚至 berkeley socket api,都是一个有漏洞的抽象,如果不了解实际的套接字和网络协议是如何工作的,就无法充分利用它。

通常你只需要关心io.EOF,它在连接关闭时被Conn.Read编辑return。在 TCP 套接字上,这相当于在阻塞连接上 recv returning 0 字节。

您可以处理的任何其他错误通常包含在 net.Error, which provides the Temporary() and Timeout() methods. Often the real error type is a *net.OpError 中,它可以提供有关错误发生时间的更多信息,以及封装实际错误 return操作。