- 论坛徽章:
- 1
|
下面是我截取的代码,程序是客户端与服务端交互时接受服务端返回信息。send没有问题,故没有截取代码。
createconn是socket+connect的函数,3次都成功了,timeout设3秒。
问题是select每次返回0,是我得写法有问题,还是其他什么问题呢?不胜感激!!
我应
while(1)
{
maxcount++;
if(maxcount>3)
{
close(socket_fd);
return -1;
}
FD_ZERO(&set);
FD_SET(socket_fd, &set);
if((nfound=select(socket_fd+1,&set,NULL,NULL,&timeout))==-1)
{
printf("main row:%d select error:%d!\n",__LINE__,errno);
return -1;
}
else if(nfound==0)
{
printf("main row :%d select time out !\n",__LINE__);
close(socket_fd);
if((socket_fd=createconn(socket_fd,&sckaddr))<0)
{
printf("main->row:%d connect error:%d\n",__LINE__,errno);
return -1;
}
else
{
printf("main->row:%d connect okey!socket_fd:%d\n",__LINE__,socket_fd);
}
continue;
}
else break;
} |
|