Select会不会堵塞
Select会不会阻塞环境:HP-UX hp12161 B.11.31 U ia64 0546304299TCP客户端连接,connect成功,发送数据没有
Select会不会阻塞
环境:HP-UX hp12161 B.11.31 U ia64 0546304299
TCP客户端连接,connect成功,发送数据没有判断是否成功
用select检测接收数据,超时时间设置500s
代码:
C/C++ codestruct timeval tm; tm.tv_sec = m_iHeartBeat; //recv package timeout, default value 5s. tm.tv_usec = 0; int32 iRet; fd_set read_set; FD_ZERO(&read_set); FD_SET(m_iSockFd, &read_set); iRet=::select(m_iSockFd+1, &read_set, NULL, NULL, &tm);
用gdb64跟踪,发现一直阻塞在select函数,时间大概10小时
今天上午把TCP监听端口的程序(就是对应的服务器端)关掉,这个函数才返回
请教各位大侠,有没有什么情况会使select函数阻塞?
[解决办法]跟踪一下,看看 m_iHeartBeat 具体值是多少?
[解决办法]socket怎么设置的?
[解决办法] #define MS_TO_TV(tv, ms)do\
{\
tv.tv_sec = ms/1000; \
tv.tv_usec = (ms % 1000)*1000;\
} while(0)
struct timeval tm;
MS_TO_TV(tm,500*1000)