簡體   English   中英

通過C中的套接字發送結構

[英]Sending a structure over socket in c

我正在編寫一個在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是一個預定義的變量,兩個程序的Hops值相同。 2)不工作,我的意思是:當我收到結構體並在num中打印值時。 它打印的值不相同,但為零!

如果您要發送該結構,則必須使用序列化和反序列化,請閱讀有關內容,可以從以下內容開始:

通過套接字發送結構時的序列化問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM