首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么分拣字符串与二进制数据,

2012-09-17 
如何分拣字符串与二进制数据,急!!!!比如有以下变量:int achar b[]二进制类型c请问下有什么方法可以把这

如何分拣字符串与二进制数据,急!!!!
比如有以下变量:
int a
char b[];
二进制类型c;

请问下有什么方法可以把这三个变量连接起来,发送对端程序后,对端可以解析出来相应的三个变量值
我本来打算用“|”连接起来再发送过去,但不知接收到后用“|”分拣会不会出错。

请各位指教一下,谢谢!!!



[解决办法]
发送的话最终都要转成字符发过去,最后解析出来。
比如定义char [40],前10个char留给int,中间10个给char b[],最后20个给二进制数(如果小了再弄大些),一起发过去,解析的时候按照你定的宽度就好解析了。
[解决办法]
数据量不固定,就在每批数据前加一小块数据头,里面放几个整数表示接下来的数据字节数

用|分割,那必须是字符串,要是字符串的话也不必非要|了,直接按0分割
按字节传输二进制数据,不能用任何字符分割,因为二进制数据的可能出现的字节范围涵盖所有字符
[解决办法]
担心出错的话,那么可以用这样的协议收发:
第一帧
|帧头标志|a的长度|a的数据|b的长度|b的数据|c的长度|c的数据|检验和|祯尾|
第二帧
|帧头标志|a的长度|a的数据|b的长度|b的数据|c的长度|c的数据|检验和|祯尾|
...
第N帧
|帧头标志|a的长度|a的数据|b的长度|b的数据|c的长度|c的数据|检验和|祯尾|
[解决办法]
借鉴DNS协议数据包传送数据时候的方法
比如传送的是:www.baidu.com
数据包中:3www.5baidu.3com

热点排行