我遇到了这段代码,它出现在设置套接字的内部:
#define PORT xxxx
struct sockaddr_in self;
self.sin_family = PF_INET;
self.sin_port = htons(PORT);
我知道我们需要将通过网络传输的数据的字节顺序转换为Network Byte Order
但我不明白为什么我们在设置套接字时也需要将端口号转换为该端口号。我的意思是,当我们绑定时,这不是“本地”的事情吗?假设我们要绑定的端口是1,而机器实际上使用的是little endian;既然我们将其转换为网络字节顺序,我们是否会将一个完全不同的端口绑定到套接字?
我想我们假设你正在使用 TCP。端口号将位于数据包标头中。这将被传送。所以它将采用网络字节顺序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)