首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

请问 select 有关问题

2012-02-15 
请教 select 问题?服务器端的流程socket- bind- listen- accept,现在想实现,当listen后在规定的时间内,

请教 select 问题?
服务器端的流程   socket-> bind-> listen-> accept,   现在想实现,当listen后在规定的时间内,如果没有客户端连接,accept没有返回,就关闭该socket,请问是不是利用select   可以实现?或有别的实现方式?

[解决办法]
//after listen

fd_set skt_read;
struct timeval tmout;
int nRet = -1;
FD_ZERO(&skt_read);
FD_SET(s,&skt_read);
tmout.tv_sec = 90;
tmout.tv_usec = 0;
nRet = select(s+1,&skt_read,NULL,NULL,&tmout);
if(-1 == nRet)
{
printf( "\terror : %s\n ",strerror(errno));
}
else if(nRet)
{
accept(...);
}
else if(0 == nselect)
{
printf( "\tTime out!\n ");
}

热点排行