一般ip数据包长度都不会超过1500个字节吧? 为什么我受到的数据经过测试:
IpHeader.TotolLen都大于10000个字节的? 基本上都是在5位数以上? 是什么原因啊? 着给我的发送带来很大的不便啊?

解决方案 »

  1.   

    你有没有htons(IpHeader.TotolLen)?
    相信你是这个错误
      

  2.   

    网络字节和主机字节顺序相反,必须转换,转换函数:
    htonl()
    htons()ntohl()
    ntohs()
      

  3.   

    在很久以前,人们争论哪种顺序更“正确”。现在必要时有相应的函数来转换。其中有 htons()、ntohs()、htonl() 和 ntohl()。在传输一个整型数据前,先转换一下。 
    i= htonl(i);
    write_data(s, &i, sizeof(i));在读数据后,再变回来。 
    read_data(s, &i, sizeof(i));
    i= ntohl(i);如果你一直坚持这个习惯,你将比别人少出错的机会。