主题:怎么传输一个结构体? 共有51043人关注过本帖 |
---|
lm |
1楼 |
怎么传输一个结构体? Post By:2004-4-7 15:11:00 [只看该作者]
在pc机上,发送端把这个结构体送到字符缓冲区中,接收端通过一个
字符缓冲区接收,然后强制转换为结构体类型,这种方法传输结构体 不会出错。 我在NB200上用同样思路传输结构体,接收结果不正确,请问该如何设计此程序? |
|
单帖管理 | 引用 | 回复 |
lm |
2楼 |
Post By:2004-4-7 15:33:00 [只看该作者]
补充一点,我的相关代码如下:
结构体定义:typedef struct { char a; ... short b; ... }univdata; 用字符型指针指向此结构体: univdata *asdu; asdu=(univdata *)malloc(sizeof(univdata)); asdu->a=<|>p<|>;      /*结构体赋初值*/ ... char *txbuf=(char *)asdu;  发送此结构体: ConnWrite(conno,txbuf,len,1); btw:传输字符串的结果是正确的,说明程序没有问题。请问对结构体该如何处理? |
|
单帖管理 | 引用 | 回复 |
zhl |
3楼 |
Post By:2004-4-7 17:00:00 [只看该作者]
将结构类型强制转换为char类型后,再调用ConnWrite(...)函数进行发送,其中len为该结构的长度。看你的代码没有问题,再看看是否有别的什么原因造成呢?
|
|
单帖管理 | 引用 | 回复 |
lm |
4楼 |
Post By:2004-4-8 10:15:00 [只看该作者]
我找不出原因,但考虑到可能是字节对齐和主机网络字节顺序的问题
NB200的tcp/ip运行库没有提到这方面的问题,请问对此是如何处理的? |
|
单帖管理 | 引用 | 回复 |
zhl |
5楼 |
Post By:2004-4-8 10:31:00 [只看该作者]
可参考我们提供的TCPDEMO程序中的TCPSvr.prj,在该程序有关于接收数据结构(结构内容包括时间、日期等)的应用。
|
|
单帖管理 | 引用 | 回复 |