socket怎么传递一个结构体数组,数组中元素为结构体。socket怎么传递一个结构体数组,数组中元素为结构体。 求
socket怎么传递一个结构体数组,数组中元素为结构体。
socket怎么传递一个结构体数组,数组中元素为结构体。 求救啊
[最优解释]
struct_type struct_object;
send(sock, &struct_object, sizeof(struct_object), 0);
///////////////////////////////////////////////////////////
struct_type struct_object;
recv(sock, (char *)&struct_object, sizeof(struct_object), 0);
[其他解释]
如一樓提的, send & recv 是同机器位宽,大小端則不會有問題,
而四樓提的,
例如 int 所佔 bytes 在不同 OS 會不同, 存放 high byte, low byte 順序也有不同時,
則不能直接 send & recv
通常會規範用 INT8 INT16 等, 請參考
在<inttypes.h>头文件中引入了这个文件< stdint.h>
大小端也要規範是用那一種, 双方則依規範看所用的機器要不要轉
[其他解释]乖乖传值吧,传结构体很多问题的……
先不说机器位宽,大小端等问题。如果结构体内含指针,这指针传过去还有效么?
[其他解释]这里有很多socket程序,请参考Bootp示例:http://download.csdn.net/detail/geoff08zhang/4571358
[其他解释]自己不要传递结构体了,有32位,64位,或内存对齐等等问题。
可以用protobuf。
[其他解释]你这不就是等于多维数组嘛...
[其他解释]我想传的是一个数组,数组元素是结构体,ISO8583 Tbl[12]={{0,"BIT MAP",12,00,32},{0,"PRIMARY DATA",02,05,25}...}
这样的话该怎么传送?
[其他解释]如果定义了一个结构体数组,该怎么传 ?比如说是struct student{char sex,int age,float score};
struct student stu[3]={......},请问这个数组该怎么通过socket传过去,是send(sockfd,&stu,sizeof(stu),0)?????
[其他解释]差不多 关键是怎么传
[其他解释]指针传过来之后,读取不到内容....
[其他解释]LZ会传什么?跟那个一样传。
至于传了后的结果读不到,请参考上述的回答,涉及到大小端/sizeof int/packing等一系列的问题。
[其他解释]转为XML文本再传。