如何解决recvfrom不 阻塞问题

小龙人 发布于 2013/08/06 19:56
阅读 1K+
收藏 0
 33 int main(int ac,char *av[])
 34 {
 35  struct sockaddr_in client_addr;
 36  socklen_t addrlen=sizeof(client_addr);
 37  char buf[MSGLEN];
 38  int ret;
 39  int sock;
 40
 41  sock=setup();
 42
 43  while(1)
 44  {
 45   addrlen=sizeof(client_addr);
 46   ret=recvfrom(sock,buf,MSGLEN,0,(struct sockaddr *)&client_addr,&addrlen);
 47   if(ret==-1)
 48   {
 49    buf[ret]='\0';
 50    narrate("GOT:",buf,&client_addr);
 51    handle_request(buf,&client_addr,addrlen);
 52   }
 53   else if(errno!=EINTR)
 54     perror("recvfrom");
 55  }
 56
 57  return 0;
 58 }

程序运行到46行直接返回-1;为什么不阻塞?等待客户端发送消息。
加载中
0
foolib
foolib
setup 里面的socket类型可能不对
返回顶部
顶部