当前位置: 技术问答>linux和unix
用ARMV41-UNKNOWN_LINUX-GCC编译出的Socket程序传输结构体出问题,请大家帮忙分析一下
来源: 互联网 发布时间:2015-09-16
本文导语: 我做嵌入式开发,用c写了一个网络程序,是要用在arm板上的,编译后和Windows程序连接,我把结构体转化为字符串传输后,那边后边的数据就收不到了,全是空字节, 如果直接用send函数传输就没有问题send(socket,&structn...
我做嵌入式开发,用c写了一个网络程序,是要用在arm板上的,编译后和Windows程序连接,我把结构体转化为字符串传输后,那边后边的数据就收不到了,全是空字节,
如果直接用send函数传输就没有问题send(socket,&structname,sizeof(struct)+1,0);,而且我们在windows下用VC编译出来的程序都是直接把结构体转为字符串传输的,不知道是不是不同的编译器出了问题,不知道大家有没有遇到同样的情况,谢谢!
如果直接用send函数传输就没有问题send(socket,&structname,sizeof(struct)+1,0);,而且我们在windows下用VC编译出来的程序都是直接把结构体转为字符串传输的,不知道是不是不同的编译器出了问题,不知道大家有没有遇到同样的情况,谢谢!
|
结构体转换成字符串传输时要注意
字符串碰到''时认为字符串结束
因此结构体中数据如果在转成char型时
如果意外出现''就会引发错误操作
另外结构体中如果成员数据长度不同
存在字节对齐时
也会产生上面问题
如struct s{
long a;
char b;
short c;
};
字符串碰到''时认为字符串结束
因此结构体中数据如果在转成char型时
如果意外出现''就会引发错误操作
另外结构体中如果成员数据长度不同
存在字节对齐时
也会产生上面问题
如struct s{
long a;
char b;
short c;
};
|
学习.