从网络发过来的协议数据包,包含明文ASCII码,二进制流,我需要如何取出数据呀?(100)

  • 主题发起人 主题发起人 zyjba
  • 开始时间 开始时间
Z

zyjba

Unregistered / Unconfirmed
GUEST, unregistred user!
一个完整的数据包内容以0X05开始,0X0A结束,包里有字符串数据,和二进制流数据,其中字符型数据和二进制流有分隔符,二进制流前面有长度标识,问题是我是如何一样一样取出这些数据呢?我是否要按CHAR类型一个一个取出字符呢,小弟没做过读取数据包的程序,望大侠们不吝赐教,或给小弟一个例程,非常感谢!
 
各位大侠,多谢了
 
最好也把字符型数据的长度写到流开始,就可以直接定位二进制流的开始位置了。。。。。。while read(s, 1) = 1 do if s = 分隔符 then
 
多谢guanyue7613,请大家多提点宝贵建议。。。。。。
 
本来无一物,何处惹尘埃
 
数据包结构是现成的,也不是我能改谈得了的,我做的是处理数据包的数据,多谢大家了
 
请大家教教我吧,多谢guanyue7613兄,到时我会给你加分的
 
字符好取,可以逐个char取出来,也可以拷贝内存到string中,关键是你的二进制流,你知道这二进制里包含的是什么格式的内容吗?图片?音视频?还是自定义的其他格式的东西?所以这个流不好处理,如果知道了格式,声明一个和格式相同的结构体,然后把流直接拷贝到结构体中进行操作
 
兄弟:你自己都不知道协议的结构,那么比尔也帮不了你啊!呵呵!
 
包里有明文,有二进制流,二进制里包含的结构我知道,而且二进制数据前面有标识符,还有二进制数据的长度,当读取到标识符的时候,可以知道后面的是二进制流,长度也可以取出,关键是小弟未做过这样对数据包的操作,不知从何入手,请大侠们给个例程什么的,多谢了
 
重申一下,包的结构我知道,但没做过这样的程序,所以求救大富翁的兄弟们
 
把整个包取出来,然后识别出二进制流,剩下的是不是就是字符串数据了呢?如果这样,把剩下的字符串取出来就行了。
 
把数据放入tmemorystream里,然后按字节读出
 
大家都很聪明,说得都对,有没有例子粘上一个呀,谢谢了
 
接收过来,读取就行了需要例子,请QQ:33586813
 
tkggai 兄,真的太谢谢你了,我白天在单位上不了QQ,我的邮箱是zyjba@163.com,多谢
 
多谢各位的帮助,结贴了,放分。。。。。。。。
 
后退
顶部