首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Select会不会堵塞

2012-07-29 
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++ code
struct 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)

热点排行