我在 C 中定义了以下结构,我想使用 Berkeley 套接字通过Linux 中客户端和服务器之间的TCP 连接发送它:
struct Argument{
int pid;
int length;
chat op;
char *data;
};
由于我有“char *data”,它是一个指针,可用于在本地发送机器中分配可变大小的数据,我必须在两次不同的时间将此结构发送到接收方。第一次,我只发送固定变量,即前三个变量。然后在接收时,我分配一个长度大小的缓冲区来第二次接收数据部分。
所以我的问题是无论如何只能将此结构发送到另一侧,数据字段大小可变,而不是我在做什么的两倍?
if (write(peer_fd, (struct Argument*) arg, sizeof (struct Argument)) < 0)
{
close(peer_fd);
return -1;
}
非常感谢。