我正在编写一个在c。
中使用套接字编程的程序在此程序中,客户端和服务器不断传输和接收数据。
当我使用这种代码在套接字上发送和接收整数时
//in the program sending data
int data;
len= send(s,(char *)&(data),sizeof(data),0);
//in the program receiving data
int num;
len = recv(s,&num, sizeof(num) , 0);
上面的代码工作正常,我可以传输和接收数字。
在一种情况下,我正在尝试发送表单结构
struct sample{
int num;
char chain[10*hops+10];
};
//in the program sending data
struct sample s1;
len= send(s,(char *)&(s1),sizeof(s1),0);
//in the program receiving data
struct sample s2;
len = recv(s,&s2, sizeof(s2) , 0);
在我尝试发送和接收结构的示例中,它无法正常工作。如何成功发送和接收结构?
注意: 1)Hops是预定义的变量。两个程序中的跳数值相同。 2)通过不工作我的意思是:当我收到结构并在num中打印值。打印的值不是相同,而是零!
答案 0 :(得分:0)
如果您尝试发送结构,则必须使用序列化和反序列化,阅读相关内容,您可以从以下开始: