对同一个值,做了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么?
服了- -