当前位置: 技术问答>linux和unix
socket程序中read字节个数与write字节个数不同
来源: 互联网 发布时间:2017-03-10
本文导语: 客户端从文件读取数据发送到服务端。每一次发送和接收数据均一致,但是最后一次发送中,服务端read返回的数据个数与客户端write的数据个数不等。。。 客户端关键代码: while((len = read(*pfd,buffer,MAXSIZE))) 188 ...
客户端从文件读取数据发送到服务端。每一次发送和接收数据均一致,但是最后一次发送中,服务端read返回的数据个数与客户端write的数据个数不等。。。
客户端关键代码:
服务端关键代码:
客户端关键代码:
while((len = read(*pfd,buffer,MAXSIZE)))
188 {
189 printf("len=%dn",len);
190 if(len == -1)
191 {
192 printf("read error!!n");
193 exit(0);
194 }
195 printf("buffer:%sn",buffer);
196 write(fd,buffer,len);
}
服务端关键代码:
367 while((len = read(fd,buffer,MAXSIZE))) //send file
368 {
369 printf("len = %dn",len);
370 printf("buffer:%sn",buffer);
371 write(*pPeerfd,(void *)buffer,len);
372 memset(buffer,'',MAXSIZE);
373 size += len;
374 if(len