| 发表于:2008-02-19 23:01:189楼 得分:0 |
我想这样做,各位看看行不行: 先接收两个字节: bool myrecv(...) { int ntwo=recv(hsocket,buffer,2,0); unsigned int ntemp=atoi(buffer[1]); //将第二个字节也就是长度字节转化为无符号整形 int nbufmax=ntohl(ntemp); //网络字节序转化为主机字节序 char buf[nbufmax]; //将nbufmax设置为接收缓冲区大小 while(nbufmax> 0) { int nlen = recv(sock,buf,nbufmax,0); if (nlen < 0) return false; nmax -= nlen; } return ture; } | | |
|