在Golang中TCPConn.Write/Read会返回什么错误?

zzn*_*zzn 2 error-handling tcp read-write go

在golang中,您将如何处理TCPConn.Read/Write的错误返回?本文档没有说明读/写错误.

Jim*_*imB 5

ReadWrite上一个TCPConn可以返回最错误您的操作系统,硬件和驱动程序的组合可以返回,其中一些沿着net封装错误,io.EOF适用时.因此,您需要了解要查找的错误以及如何处理错误.每一层网络API,甚至是berkeley套接字api,都是一个漏洞抽象,如果不了解实际的套接字和网络协议是如何工作的,你就无法充分利用它.

通常您只需要关注io.EOF,Conn.Read当连接关闭时返回.在TCP套接字上,这相当于recv在阻塞连接上返回0个字节.

您可以处理的任何其他错误通常都包含在a中net.Error,它提供了Temporary()Timeout()方法.通常真正的错误类型是a *net.OpError,它可以提供有关错误发生时间的更多信息,以及封装操作返回的实际错误.