C/C++ 网络编程字节序的问题

htons和ntohs这两函数是不是,客户跟服务机之间,主机发送出去要用htons转成网络字节顺,而服务如果接收要用ntohs,这样配对使用?还有,在socket中,设置... htons和ntohs

这两函数是不是,客户跟服务机之间,主机发送出去要用htons转成网络字节顺,而服务如果接收要用ntohs,这样配对使用?

还有,在socket中,设置端口,为什么服务端跟客户端都用htons
sockaddr_in servaddr;

servaddr.sin_port = htons(5555);
展开
 我来答
citizen1900
推荐于2016-11-23 · TA获得超过206个赞
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
恩。基本上是这个意思。
htons表示short类型的数据由主机字节序转为网络字节序。而ntohs表示是网络字节序转换到主机字节序。
因为历史的原因网络字节序约定为大端(bigedian),而主机字节序位则依据CPU的类型各有不同,我们普通的intel处理器为小端,而powerpc等一些处理器则是大端。那么从主机出去的数据到网络上例如是INTEL,那是要转换的。所以你这个无论是服务器还是客户端,只要是出去的数据都是要经过htonxx这样的函数转换。如果是接收呢,则是要通过ntohxx这样的函数转换的。
设置端口由于是面向网络操作,所以也是要使用htons转换的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灰姑娘的霸气
2015-12-12 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3145
采纳率:72%
帮助的人:246万
展开全部
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlog);
uint16_t ntohs(uint16_t netshort);

这种时候man一下就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式