关于网友提出的“ socket程序中read字节个数与write字节个数不同”问题疑问,本网通过在网上对“ socket程序中read字节个数与write字节个数不同”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: socket程序中read字节个数与write字节个数不同
描述: 客户端从文件读取数据发送到服务端。每一次发送和接收数据均一致,但是最后一次发送中,服务端read返回的数据个数与客户端write的数据个数不等。。。
客户端代码:
367 while((len = read(fd,buffer,MAXSIZE))) //send file
368 {
369 printf("len = %d\n",len);
370 printf("buffer:%s\n",buffer);
371 write(*pPeerfd,(void *)buffer,len);
372 memset(buffer,'\0',MAXSIZE);
373 size += len;
374 if(len < MAXSIZE)
375 break;
376 }
服务端代码:
while((len = read(*pfd,buffer,MAXSIZE)))
188 {
189 printf("len=%d\n",len);
190 if(len == -1)
191 {
192 printf("read error!!\n");
193 exit(0);
194 }
195 printf("buffer:%s\n",buffer);
196 write(fd,buffer,len);
}
以上介绍了“ socket程序中read字节个数与write字节个数不同”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2645083.html