0
我想通過從客戶端發送到服務器發送一個結構。該結構是這樣的:通過發送命令發送一個結構
typedef struct{
int age;
long int id;
char firstName[10];
char lastName[10];
uint32_t somefield;
} Person;
現在,當我填寫領域在我的客戶端代碼:
Person person;
person.age = 52;
person.id = 1234567;
strcpy(person.firstName, "Walter");
strcpy(person.lastName, "White");
inet_pton(AF_INET, "127.0.0.1", &person.somefield);
person.somefield = htonl(person.somefield);
,並打印出來,我得到正確的輸出
- 年齡: 52
- ID:1234567
- 第一名:沃爾特
- 的名字:白
- 一些UINT:2130706433
我再呼叫發送到結構傳遞到服務器
send(socketfd, &person, sizeof(&person), 0);
對事物的服務器端,它讀取一個人使用recv:
Person person;
recv(newSocketfd, &person, sizeof(Person), 0);
並打印出來的領域,它確實不給我,我期待輸出...
- 年齡:52
- ID:4197943
- 名字:
- 名字:
- 一些UINT:4286513152
我已經做了研究,看來只要我沒有通過結構傳遞指針,我應該可以做到這一點。我對此有誤嗎?任何幫助,將不勝感激。