某数据流,头部特征为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循环进行匹配
有什么合适的算法么能找到头部么
有什么合适的算法么能找到头部么
详见:http://zh.wikipedia.org/wiki/克努斯-莫里斯-普拉特算法
或者用XML把数据包装一下,解析方便极了。
否则只能使用 for 了。
客户端第一次连上服务器之前,先要使用new WebClient().DownloadData(...)下载次分隔符,然后才能使用tcp连。