Tcp数据正在相互附加



我在使用tcp时遇到问题。当我在客户端或服务器中读取和写入数据时,他应该每次将其作为一个数据包读取。

但有时,当我非常快地写入数据时(例如,在循环中),客户端会将其作为一个数据接收,而不是将其作为三个不同的数据包处理。

发送数据:

messageToSend = Encoding.ASCII.GetBytes(data);        
c.GetStream().Write(messageToSend, 0, messageToSend.Length);

客户端接收:

byte[] message = new byte[1024];
int i = 0;
i = c.GetStream().Read(message, 0, message.Length);
Encoding.ASCII.GetString(message, 0, i);
//Handle the new data....

希望它足够清楚,并提前感谢!

TCP设计为流协议,如果您读得不够快,它会堆积在缓冲区中。例如,UDP是一种dgram协议,它具有可单独读取的固定数据包。

相关内容

  • 没有找到相关文章

最新更新