我在Go中使用io.Copy
代理TCP连接
_, 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
。
1条答案
按热度按时间jm2pwxwz1#
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
)。为什么?因为信息上说:
readfrom ...
,错误发生在io.Copy
从读卡器阅读时,在我们的例子中是dst
。