首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在htonl和htonl之间作出决定

在htonl和htonl之间作出决定
EN

Stack Overflow用户
提问于 2017-01-07 07:30:12
回答 1查看 2.8K关注 0票数 1

我读过这一解释这页手册关于htonshtonlntohlntohs的用法,但是我仍然不完全理解它们的用法(我对socket和一般的网络编程非常陌生)。我确实理解小、大端和字节顺序,但我不知道如何在我的聊天应用程序代码中正确地实现这些函数,以便它在不同的机器上一致工作(其中一个使用大端,另一个很少使用)。

针对我的具体情况,我有一个(几乎)完全工作的聊天应用程序,并且刚刚开始使用htons,但是经过一些研究之后,这似乎是不可靠的。我意识到这个问题可能看起来很相似,但是我在这里询问的是一个实现示例,我已经知道这些调用的基本功能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-07 11:08:45

其思想是对整数类型有一些通用的表示形式。TCP/IP使用NBO,网络字节顺序。不管它是什么(大的、小的、或更奇特的),发送16位整数或32位数据的方法是在发送这样的数据之前使用htonshtonl。然后,当接收到它时,您必须用ntohsntohl将其转换回宿主表示形式。

发送方希望发送值uint32_t a,然后发送由htonl(a)返回的数据,例如d。

接收方获取d,应用ntohl(d)并获得正确的uint32_t值。

这些只是编解码功能。发送者发送代码(V),然后接收者得到解码(代码(V))!您不需要知道什么代码(V)等于(没有兴趣)。

如果你觉得它不可靠,那是因为你没有按它应有的方式使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41519018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档