我发现在设置socket的核心代码中出现了这段片段:
#define PORT xxxx
struct sockaddr_in self;
self.sin_family = PF_INET;
self.sin_port = htons(PORT);
我知道我们需要将在网络上传输的数据的字节顺序转换为 网络字节序
,但是我不明白为什么在设置套接字时也需要将端口号转换为它。我的意思是,在绑定时,这不是一个“本地”的事情吗?假设我们打算绑定的端口是 1,而机器实际上使用的是小端序;现在我们将其转换为网络字节序,那么我们难道不是将完全不同的端口绑定到套接字上吗?