我正在編寫我的第一個套接字行,並完成了一個客戶機服務器系統之間的消息傳遞。接下來的步驟是製作一個標頭,讓接收者知道消息的數據量以及消息的數據量。我怎樣才能做到這一點?套接字編程中的頭文件
我想報頭包含兩個int:
int to_phone_number;
int size;
如何被髮送頭?
send(sock, the_message, max_message_length, 0);
我正在編寫我的第一個套接字行,並完成了一個客戶機服務器系統之間的消息傳遞。接下來的步驟是製作一個標頭,讓接收者知道消息的數據量以及消息的數據量。我怎樣才能做到這一點?套接字編程中的頭文件
我想報頭包含兩個int:
int to_phone_number;
int size;
如何被髮送頭?
send(sock, the_message, max_message_length, 0);
標題,正文,它仍然是數據。
您將以與發送任何內容相同的方式發送您的標題。
你可能想要一個struct message_header
來組成你的標題。
struct message_header {
int to_phone_number;
int size;
};
創建一個struct message_header
變量,設置其字段,然後發送它。
struct message_header header;
// ...
send(sock, &header, sizeof(header), 0);
謝謝!!!!!!!!! – user265767 2010-11-17 21:15:45
不同系統之間的字節順序(字節順序)可能不同,應該考慮這一點。傳統上,二進制整數值以大端順序發送,所以16位數字「265」將以(十六進制)「01 00」而不是「00 01」發送。 x86是小端。
作爲參考,「int」不能保證足夠大以表示電話號碼(事實上通常不是,除非您假定電話號碼永遠不會超過9位數字,而'int' s有32位)。 – cHao 2010-11-17 20:49:31