本帖最后由 VisualEleven 于 2011-04-28 19:43:18 编辑

解决方案 »

  1.   

    网络字节顺序是指TCP/IP(网络层、传输层)解析部分需要遵守的字节顺序 我们在填充SOCKADDR_IN结构时 需要转换为网络字节顺序 使用send、recv是传输应用层的消息 所以不需要转换 
    另外当使用原始套接字时自己填充IP头、TCP头、UDP头时需要转换
      

  2.   

    char buffer[bufsize];
    recv(sock, buffer, bufsize, 0);
    char *pMsg = new stMsg;
    pMsg = (stMsg*)buffer;
    ---------------------------
    囧,你修改了pMsg的指针的值,你没有办法delete操作了,内存泄露问题来了
      

  3.   

    你发送时都知道memmove,接收时也可以试试啊
    char *pMsg = new stMsg;
    memmove(stMsg, buf, strlen(buf));不过结构体sizeof()的时候把指针也包括进去了,怎么能正确解析结构体我还不清楚,关注~~~
      

  4.   

    此处send、recv解释可能有误 LZ居然在C++也发了一贴 O(∩_∩)O哈哈~ 那贴一大虾回复说recv、send内部也有做字节转换 想了想 应该是的 之所以有网络字节 是因为需要在不同主机间通信