我知道這可能是一個愚蠢的問題,但如果我通過網絡發送int數組,我是否需要使用字節排序?換句話說,假設我有int a,b,c,d和int e [4]Int Array通過網絡進行字節排序
e [1] = a; e [2] = b; e [3] = c; e [4] = d;
現在我發送e使用:write(socket,e,sizeof(e));
接收器會按順序讀取它嗎?或者我需要在存儲到數組之前使用htonl作爲a,b,c,d?謝謝
我知道這可能是一個愚蠢的問題,但如果我通過網絡發送int數組,我是否需要使用字節排序?換句話說,假設我有int a,b,c,d和int e [4]Int Array通過網絡進行字節排序
e [1] = a; e [2] = b; e [3] = c; e [4] = d;
現在我發送e使用:write(socket,e,sizeof(e));
接收器會按順序讀取它嗎?或者我需要在存儲到數組之前使用htonl作爲a,b,c,d?謝謝
如果接收者預計網絡字節順序爲int
s,那麼是的,你必須在發送之前將每個int
按網絡字節順序排列。
網絡不會關心字節順序,但承載接收套接字的應用程序將會。如果發送應用程序使用little-endian字節順序並且接收應用程序使用big-endian,則必須執行必要的字節反轉。
接收者期待一個相同大小的int數組。例如int x [4] –