场景是我通过家庭网络上的 TCP 将数据从一台机器传输到另一台机器。发送方实例化 aTCPClient
并将数据写入NetworkStream
返回的GetStream()
. 我的理解是,数据NetworkStream
最终会发送到网卡上的缓冲区,并通过物理介质传输。
但是,如果连接中断,则MemoryStream
NICs 缓冲区中的数据和数据将丢失,但在我的应用程序中,数据被写入流中,我可以天真地假设数据被发送到侦听套接字,但显然不是这样。一旦重新建立连接,应用程序将继续发送数据,据其所知,传输被中断,但这并没有考虑到 NIC 缓冲区和MemoryStream
对象中丢失的数据。
除了编写我自己的应用层协议之外,有什么办法可以解决这个问题吗?