日期:2014-05-16  浏览次数:20709 次

linux socket连接select探测的问题,求大神指导
非阻塞的socket,用connect连接后返回EINPROGRESS,按照man手册上的说明,使用select方法去探测是否可写且没有错误表示连接成功。这时候问题出现了,我服务器根本没开,select(fd + 1, NULL, &fdset, NULL, NULL)却返回1,fd也在fdset里面,getsockopt获取fd的错误,也没错。思来想去想不明白,无意中将fd + 1改成了fd 这时候表现却正常了,求大神指导,如何正确的探测连接是否成功
linux socket connect select ?tcpip

------解决方案--------------------
select的第一个参数应该是所有在fdset里最大的值再加+1

仔细看看man手册