socket怎么传递一个结构体数组,数组中元素为结构体。

如题所述

要首先理解传输原理:
socket其实是字节流传输的,就是说传输的数据本身是无结构的,所以收、发双方要约束好传输的内容结构。

发送方:ssize_t send(int sockfd, const void *buf, size_t len, int flags); 要将要传送的结构体存储在buf里,以首地址指针的形式发送,并且指定好buff的长度。所以一般要将某结构体指针强制转换成void*格式发送。

接收方:ssize_t recv(int sockfd, void *buf, size_t len, int flags); 收到数据后,buf是首地址,所以要强制转换成约定好的结构体,若结构体名为mystruct, 则(mystruct*) buf,这样接收方就可以使用这个数据啦。
========================================================================
温馨提示:答案为网友推荐,仅供参考
相似回答