C#使用TCP流发送数据包

时间:2015-02-15 18:09:01

标签: c# sockets tcp

我正在尝试使用来自基本“Stream”类的读写来从tcp服务器向客户端发送多个数据包。问题是,我不知道数据包的大小(客户端)。我应该在每个数据包之前发送和int(4个字节),以便客户端可以调整缓冲区并仅接收指定的nuber字节吗?我觉得tcp协议中已有一些东西可以处理,但我似乎无法找到它。

1 个答案:

答案 0 :(得分:0)

您想要做的事情的过程称为Message Framing,并且TcpClient中没有为您做到这一点的内置机制。更高级别的应用程序层负责这样做,无论是你自己的代码在消息的前缀上附加长度,还是像WCF一样为你处理消息框架的其他库。

Here is a full example显示了您在问题中建议的长度前缀实现。