【发布时间】:2014-03-22 05:39:18
【问题描述】:
我在设置套接字的过程中遇到了这段 sn-p 代码:
#define PORT xxxx
struct sockaddr_in self;
self.sin_family = PF_INET;
self.sin_port = htons(PORT);
我知道我们需要将通过网络传输的数据的字节顺序转换为Network Byte Order,但我不明白为什么在设置套接字时我们还需要将端口号转换为该字节顺序。我的意思是,当我们绑定时,它不是“本地”的事情吗?假设我们打算绑定的端口是 1,机器实际上使用的是 little endian;现在既然我们将它转换为网络字节顺序,我们不会将一个完全不同的端口绑定到套接字吗?
【问题讨论】:
-
因为这是伯克利人最初定义套接字 API 的方式?