vb.net - 如何分离 TCP 套接字消息

标签 vb.net sockets tcp

我对两个程序之间的异步 TCP 套接字消息进行了一些试验,用于传递数据、数字和/或文本。我所做的是在每条消息的开头使用关键字,然后用“|”分隔值特点。所以消息可能看起来像这样:

“数据|490|40517.9328222222|1|6|11345|11347|11344|11345|106|40517.8494212963”

我将读取缓冲区大小设置为 1024,因为大多数消息都在该长度内。不过有时候我可能会快速发很多短信,几条加在一起不到1024个字符,然后好像一下子就看完了。如果我发送的消息超过 1024 个字符,它将被拆分。所以我正在寻找有关如何处理此问题的建议。我应该使用一些特殊字符来开始和/或结束每条消息吗?将不胜感激有关如何执行此操作的一些提示..

最佳答案

最简单的方法是在每条消息的开头发送消息长度,并以适用于小端和大端硬件的方式进行序列化。

这也可以帮助您的接收器有效地预分配其接收缓冲区。

关于vb.net - 如何分离 TCP 套接字消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361390/

相关文章:

c# - 列表框复选框未绑定(bind)到其源

multithreading - 同步 TCP 消息

c# - 自动刷新 tcp 流不起作用

c# NetworkStream 通过 tcp/ip 配置

asp.net - 如何组合这些 If 语句条件

vb.net - VB6 到 VBNet - ListBox.Selected

c# - 作为新线程运行类

c - 如何从多个命名管道接收消息?

Python - 如何捕获gevent套接字超时异常

将 sockaddr_storage 转换为 inet_ntop 的 sockaddr_in