用了一recv次之后为什么不能继续发送数据?
//main 代码段,不停的读入输入,再发送到服务器,接受返回的信息,为什么只有第一次可以,第二次就不行了?
int s;
struct sockaddr_in addr;
fd_set writefds;
char buffer[256];
struct timeval tv;
int len;
unsigned long ip;
char c;
ip = inet_addr(SERVER_IP);
if((s = socket(AF_INET,SOCK_STREAM,0))<0){
printf("socket");
exit(1);
}
memset( &addr,'\0',sizeof(addr) );
addr.sin_family = AF_INET;
addr.sin_port=htons(PORT);
addr.sin_addr.s_addr = ip;
bzero(&(addr.sin_zero), 8);
if(connect(s,(struct sockaddr *)&addr,sizeof(addr))<0){
printf("connect");
exit(1);
}
recv(s,buffer,sizeof(buffer),0);
printf("%s\n",buffer);
int i= 1;
while(1){
bzero(buffer,sizeof(buffer));
read(STDIN_FILENO,buffer,sizeof(buffer));
if((len = send(s,buffer,sizeof(buffer),0))<0){
printf("send");
exit(1);
}
recv(s,buffer,sizeof(buffer),0);
printf("%s\n",buffer);
}