工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1656|回复: 3

关于字节顺序

[复制链接]
发表于 2008-10-22 11:55 | 显示全部楼层 |阅读模式
请教下,希望有实际经验的人回答。

字节顺序有big endian和little endian两种
相关的函数有:htons htonl  (host to net short ,host to net long)
                        ntohs ntohl (net to host)

据我所看到的例程中,只有在传送地址和端口时调用了这些函数,而具体数据却没有
网上有两种说法: 一种说只要地址和端口转换一种说所有网络数据都要考虑转换。

我倾向于相信后者,
在具体设计中可以以确定的顺序(如:little-endian x86所用的顺序)进行传输,
然后数据接收方判断本身主机的字节顺序再判断是否转换。


某BLOG上说:有可能是在设置地址和端口后API会对之后传输的数据进行自动转换,个人不是很相信,但没办法找到big-endian的机器测试。


PS:突然想想网络字节顺序是定了的big-endian,也就是说只需要对big-endian进行特殊处理。



再PS:刚刚翻书,似乎这不是什么问题。。。大家路过吧..

[ 本帖最后由 iptton 于 2008-10-22 13:19 编辑 ]
发表于 2008-10-27 19:32 | 显示全部楼层
感觉数据没必要进行转换. 本来是怎样的, 传输到另一边也怎样, 硬要将其转换只会破坏数据而且也未必适用.
路过.
回复

使用道具 举报

头像被屏蔽
发表于 2008-11-4 04:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-11-6 00:47 | 显示全部楼层
和CPU相关的....
如果是x86的则是little endian的,数据都要经过转换的.不过对于做上层应用,甚至是上层的应用协议栈的人来说一般不需要关心这个,驱动层或者是OS适配层已经把这个做了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-18 05:44

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表