【发布时间】:2012-09-14 22:08:13
【问题描述】:
我正在使用服务器-客户端模型通过套接字编程与硬件板进行通信。
我使用“NetworkStream”类的“read()”方法从板上接收数据,该方法读取具有指定最大大小的缓冲区并返回缓冲区中有效数据的长度。我已经考虑了足够大的缓冲区的最大大小。
董事会每 100 毫秒发送一组消息。每条消息都包含一个 2 字节的常量标头和可变数量的字节作为其在标头字节之后的数据。
问题是我没有收到一条一条的消息!相反,我收到的缓冲区可能包含 2 或 3 条消息,或者一条消息分散在两个缓冲区之间。
目前,我正在使用 DFA,它使用恒定的标头字节收集消息的内容(我们不知道消息的长度,我们只知道标头字节)但问题是数据字节可能包含标头随机字节!!
是否有任何有效的方法可以使用任何特定的流或类从缓冲区中收集每条消息的字节?我该如何克服这个问题?!
【问题讨论】:
标签: c# .net sockets io tcpclient