首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

网络数据大小端有关问题

2012-03-19 
网络数据大小端问题为什么socket编程中像端口 ip地址都需要转换为网络大端数据(hton pton),那为什么发送的

网络数据大小端问题
为什么socket编程中像端口 ip地址都需要转换为网络大端数据(hton pton),那为什么发送的数据就不需要转换呢?
譬如我发送一个int类型的数据?

[解决办法]
当然是需要的,只是所有的数据都被当成char[]来处理,没有办法去判断类型啊。
如果你传了int就要自己做转换了。
[解决办法]
其实这样的:
tcp/ip协议栈的实现里面把包看成是大端存储的,所以他把收到的东西按大端来解释。
但是,要注意到,协议的每一层只关注相应的报文段,比如,ip层关心ip头,tcp关注tcp头。转发你的包的路由器只关心下面三层,传输过程和你的机器协议栈解析包的过程中没人关心你的数据段(非协议头)是什么字节序。
关心数据段存储字节序的是你的应用程序,而你的应用程序对大下端的理解是由处理器决定的。所以说,只要收发两端的处理器对大小端的理解相同,就没有问题。

热点排行