我想從我的客戶端程序發送一個結構到服務器程序(我正在寫服務器和客戶端程序)。此外,萬一重要的是我寫在一個32位的操作系統Linux上,客戶端和服務器都將運行在相同的系統上。這裏是我的結構:通過套接字客戶端服務器通信
struct msg_to_server {
int type_of_msg;
int type;
int flag;
int pid;
char name[MAX_WORD];
char client_name[MAX_WORD];
int child_timeout;
int numberKilled;
};
我知道,如果我送一個int我需要使用htonl(INT)的無符號整數從主機字節順序轉換成網絡字節順序,但什麼我的情況下,做的結構? 任何幫助將不勝感激。
該溶液可以是脆弱的,即使發送者和接收者是相同的硬件和操作系統:例如如果發送程序使用與接收程序不同的編譯器設置進行編譯,那麼相同的結構可能在兩個系統上具有不同的內存佈局,這樣接收器上的字節就會有不同的解釋。 – 2012-04-08 21:12:10
是的,這就是爲什麼我說「至少」。在兩臺機器之間發送數據時需要考慮許多可能的問題。不過,在受控環境下解決起來相當容易。 – 2012-04-08 21:16:21
謝謝你們兩位。這些是有益的評論。我不知道。 – 2012-04-09 01:51:40