但是如果是长连接的,并且同一个客户端也可以并发地发送多个(例如几百个)消息并且以随即顺序收到对方发来的结果,那么很自然地就存在大量沾包解析问题。
真的挺费的,还不如一次连接就发一个数据包算了,都不用头部,发完就断线。 或者用XML把数据包装一下,解析方便极了。 否则只能使用 for 了。
某数据流,头部特征为0x00 0x40 0x01 0x00 0x01 0x31 0x9f 0x00 0x00 0x30 0x30 0x30 0x30 0x2e 0x30 0x30 0x30这17个字节,字节中的16进制代码完全可能在数据流中出现,因此匹配必须连续16个字节完全符合头部特征定义才行,头部的16个字节后,跟着10240个实际数据,在每个头部和上一个数据间,可能存在随机填充的长度不定的字节 客户端数据的接受在while(true)循环中进行,每次接受的字节数可以自定 因为数据流量很大,计算要精简,最好避免使用for循环进行匹配 有什么合适的算法么能找到头部么
public static string SeparatedText = "**%&#@!*" + Guid.NewGuid().ToString("n"); //消息分隔符
new WebClient().DownloadData(...)下载次分隔符,然后才能使用tcp连。
...每个头部和上一个数据间,可能存在随机填充的长度不定的字节...
111,092
社区成员
642,554
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧