【发布时间】:2013-11-11 04:37:55
【问题描述】:
有什么方法可以实现TcpClient.GetStream() 的逆运算,即获取与给定NetworkStream 关联的TcpClient?
如果没有,我还能如何获得可用数据的数量(不要与一般数据的可用性混淆,可以通过NetworkStream.DataAvailable 检索) 在NetworkStream 上?
【问题讨论】:
-
为什么不自己存储 TcpClient 呢?
-
网络流是无穷无尽的,所以 Length() 属性没有意义,没有实现。只需读取流,它就会告诉您它返回了多少(可能还有更多等待读取,取决于缓冲区的大小)。将您的逻辑基于收到的实际数据。只有您可以决定“所有”(或足够)数据何时到达以便您采取行动。您可以自行设计一个通信协议,让您可以仅根据您目前收到的数据来确定何时收到“完整消息”。