猿问

如何知道在“使用关闭的网络连接”错误中关闭了哪个连接

我在 Go 中使用代理 TCP 连接io.Copy


_, err := io.Copy(src, dst)

if err != nil {

   log.Println(err)

}

并且一个连接关闭,因此发送此错误:


readfrom tcp 171.31.80.49:10000->88.39.116.204:56210: use of closed network connection

我怎么知道哪个网络连接关闭了?即171.31.80.49:10000或88.39.116.204:56210。


慕森卡
浏览 77回答 1
1回答

慕桂英546537

TCP 连接是一对 IP 和端口对。在您的情况下,连接是171.31.80.49:10000->88.39.116.204:56210. 它是连接,它是关闭的。没有连接171.31.80.49:10000或88.39.116.204:56210。您的示例中有两个连接:src和dst(顺便说一下,您将它们命名错误:https ://pkg.go.dev/io#Copy )。如果您的问题是哪个连接正在关闭,那么根据错误消息,它是dst(应该命名为src)。为什么?因为消息说: ,从 Reader 读取readfrom ...时会发生错误,在我们的例子中是。io.Copydst
随时随地看视频慕课网APP

相关分类

Go
我要回答