免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: gloriajie
打印 上一主题 下一主题

socket的io操作为什么有的时候会阻塞? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2004-09-14 15:44 |只看该作者

socket的io操作为什么有的时候会阻塞?

服务器:
while(true)
{
  msgsock=accept(..);
  send(..);
  clsesocket(msgsock);
}

tv.tv_sec=10;
   tv.tv_usec=0;

客户端:
while(c<3)
{
    c++;
   sock=socket(AF_INET, SOCK_STREAM,0);           server.sin_family=..
   server.sin_port=..
   server.sin_addr.S_un.S_addr=..  
   
  connect(sock,(const sockaddr*)&server,sizeof(server))
   memset(buf,0,sizeof(buf));
   FD_ZERO(&fdread);
   FD_SET(sock,&fdread);
   ioctlsocket(sock,FIONBIO,&b);    //这句话效果加不加都一样
  if(ret=select(0,NULL,&fdread,NULL,&tv)<0)
   {
       printf("\nselect error";
       exit(0);
   }
   else    printf("%d",ret);
   if(FD_ISSET(sock,&fdread))
      recv(...);
closesocket(sock);
sock=NULL;
Sleep(50);
}
为什么ret总是0呢?而且select总是立刻返回,不论超时设为多少?怎么回事啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP