为什么服务器是大端字节序与网络字节序(大端字节序)一样,也需要htons来转化,才能得到正确数据?

mirroCS 2012-08-07 09:46:47
如题!!!
...全文
451 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
IVERS0N 2012-08-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

服务器是大端,从网络发过来的数据是大端 就不需要转化了?
引用 1 楼 的回复:
数据并不需要特意去转换大小端,保存通讯2端的大小端一致就行
[/Quote]

对的
mirroCS 2012-08-08
  • 打赏
  • 举报
回复
大哥与数值类型的内存存储方式有什么关系呀?
[Quote=引用 8 楼 的回复:]

具体情况我不加以分析,
如果楼主想知道需不需要转化,
还是自己实验一下,前提是要清楚网络字节序和主机字节序,以及数值类型的内存存储方式
顺便提醒一下,如果你自己传的数据内容,是可以自己定义顺序不用管字节序的
[/Quote]
MFCJCK 2012-08-08
  • 打赏
  • 举报
回复
htons 可以不需要,你应该是其他地方有问题。
zdleek 2012-08-08
  • 打赏
  • 举报
回复
具体情况我不加以分析,
如果楼主想知道需不需要转化,
还是自己实验一下,前提是要清楚网络字节序和主机字节序,以及数值类型的内存存储方式
顺便提醒一下,如果你自己传的数据内容,是可以自己定义顺序不用管字节序的
mirroCS 2012-08-08
  • 打赏
  • 举报
回复
服务器是大端,从网络发过来的数据是大端 还需要转化了?
[Quote=引用 6 楼 的回复:]

服务端和客户端的主机的字节序本身可能不一样,主机和网络字节序的顺序也可能不一样
所以,统一用htons比较方便,不用去考虑字节序问题
[/Quote]
zdleek 2012-08-08
  • 打赏
  • 举报
回复
简单地说,如果接收的数据有错,肯定是你对某些概念理解还不够透彻,所有有处理不当的地方
傻X 2012-08-07
  • 打赏
  • 举报
回复
这跟芯片有关吧。比如X86就是小端的,ARM有些大端,有些小端
Gloveing 2012-08-07
  • 打赏
  • 举报
回复
转成网络字节序是为了考虑不同平台上的使用
ckc 2012-08-07
  • 打赏
  • 举报
回复
按道理是不需要的,不过还是做下比较可靠
ouyh12345 2012-08-07
  • 打赏
  • 举报
回复
数据并不需要特意去转换大小端,保存通讯2端的大小端一致就行
zdleek 2012-08-07
  • 打赏
  • 举报
回复
服务端和客户端的主机的字节序本身可能不一样,主机和网络字节序的顺序也可能不一样
所以,统一用htons比较方便,不用去考虑字节序问题
mirroCS 2012-08-07
  • 打赏
  • 举报
回复
服务器是大端,从网络发过来的数据是大端 就不需要转化了?
[Quote=引用 1 楼 的回复:]
数据并不需要特意去转换大小端,保存通讯2端的大小端一致就行
[/Quote]

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧