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