网络编程,接收不到数据
刚开始学网络编程,写了个小程序测试了一下,老是第一次接收不到数据,但是就是能接收到结束标志,郁闷。
一小段代码如下:
服务端: while(1)
{
printf("abc\n");
bzero(buffer2,sizeof(buffer2));
n=read(pthread->clientsocket,buffer2,sizeof(buffer2));
printf("read=%d\n",n);
printf("%s\n",buffer2);
if(strcmp(buffer2,"quit")==0)
break;
fwrite(buffer2,n,1,fp);
}
printf("recv over\n");
fclose(fp);
客服端:
fd=open(mp.filename,O_RDWR);
if(fd==-1)
{
perror("open file error!");
exit(1);
}
lseek(fd,0,SEEK_SET);
bzero(buffer,sizeof(buffer));
while((n=read(fd,buffer,sizeof(buffer)))>0)
{
m=write(socket2,buffer,strlen(buffer));
printf("write=%d\n",m);
printf("%s\n",buffer);
sleep(1);
bzero(buffer,sizeof(buffer));
}
close(fd);
bzero(buffer,sizeof(buffer));
strcpy(buffer,"quit");
sleep(1);
write(socket2,buffer,strlen(buffer));
printf("%s\n",buffer);
printf("update file over!\n");
客服端终端信息如下:
Update Files:b.c //输入文件,打印如下
write=11
123456
789
quit
update file over!
服务端终端信息如下:
abc
read=4
quit
recv over //每次客服端输入文件名,服务端就只打印这四句。
求高手指正一下!