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

对同一个值,做了2次ntohs之后,等于没变化解决思路

2012-03-26 
对同一个值,做了2次ntohs之后,等于没变化int main()240 {241unsigned short a,b242antohs(1293)243bnt

对同一个值,做了2次ntohs之后,等于没变化
int main()
240 {
241 unsigned short a,b;
242 a=ntohs(1293);
243 b=ntohs(a);
244 printf("%d,%d\n",a,b);
245 return 0;
246 }


jzhang@lyra:~/test> gcc -o test test.c
jzhang@lyra:~/test> ./test
3333,1293


[解决办法]
转换了两次当然还是回到了host byte order,所以值不变了。
[解决办法]
那说明你的主机字节序与网络字节序不同

如果字节序相同的话,ntohs没有实际效果
如果不同的话,就是把字节序倒序

你倒两次,就回去了
[解决办法]
楼主太2了。。。 楼主,你有本事把一开始那个常数:1293打印出来。。。

那不就是1293,3921,1293么?

服了- -

热点排行