在golang中TCPConn.Write/Readreturn会有什么错误?
In golang what error will TCPConn.Write/Read return?
在golang中,你会如何处理TCPConn.Read/Write的错误return?
这个 document 并没有说明 read/write 错误。
Read
和 Write
在 TCPConn
上可能会 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操作。
在golang中,你会如何处理TCPConn.Read/Write的错误return? 这个 document 并没有说明 read/write 错误。
Read
和 Write
在 TCPConn
上可能会 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操作。