回顧主機字節序 - 大小端
- 發送主機將發送緩沖區中的數據按內存地址從低到高的順序發出
- 接收主機把從網絡上接收到的數據按內存地址從底到高的順序依次保存到接收緩沖區
- TCP/IP 規定,網絡數據流應采用大端字節序,即低地址高字節,也就是說,不管主機是大端機還是小端機,都會按照這個規定的網絡字節序來發送/接收數據,如果發送主機是小端機,就需要先將數據轉成大端,否則直接發送即可
#include <arpa/inet.h>功能:主機字節序轉網絡字節序(大端)
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);功能:網絡字節序(大端)轉主機字節序
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);