【发布时间】:2014-11-21 09:47:17
【问题描述】:
我正在尝试读取通过TCP/IP 连接的机器缓冲区中存在的所有数据,但我不知道为什么我没有获取所有数据,一些数据正在丢失。
这是我正在使用的代码..
using (NetworkStream stream = client.GetStream())
{
byte[] data = new byte[1024];
int numBytesRead = stream.Read(data, 0, data.Length);
if (numBytesRead > 0)
{
string str= Encoding.ASCII.GetString(data, 0, numBytesRead);
}
}
请告诉我从机器获取所有数据时我缺少什么。 提前谢谢..
【问题讨论】:
-
这可能与您明确读取最多 1024 个字节的事实有关吗?
-
@decPL Ok 那么我怎样才能读取所有数据呢?
-
究竟缺少什么?流的开始、结束还是随机字节?你能从字节序列中识别出流的结尾吗?您知道数据的预期长度吗?
-
@Aik 它缺少随机字节。并且数据长度不知道它可以是任何东西?
-
不,它不可能是任何东西。如果您不想等到客户端关闭连接,则需要定义一个协议。否则 - 继续阅读,直到客户端关闭连接。
标签: c# tcp tcpclient tcp-ip networkstream