关于fread超时问题
有一开源代码,建立socket后,用fdopen打开sockid,返回FILE指针
以后对该socket的操作都是以流文件方式如:fread,fwrite等
我的问题是如何对fread操作进行超时处理?select,setsockopt似乎都不行
[解决办法]
select,setsockopt似乎都不行??
你是怎么处理的
[解决办法]
如何设置连接超时:
http://blog.bcchinese.net/v45072501/archive/2006/06/05/73642.aspx
[解决办法]
select怎麽不行了?
int WaitResponse(int sock_fd, int timeout)
{
fd_set rfds;
struct timeval tv;
int ret = FALSE;
int selectRet = -1;
memset(&tv, 0, sizeof(struct timeval));
FD_ZERO(&rfds);
FD_SET(sock_fd, &rfds);
tv.tv_sec = timeout;
tv.tv_usec = 0;
selectRet = select(sock_fd + 1, &rfds, NULL, NULL, &tv);
if(selectRet == -1){
ret = FALSE;
}
else if(selectRet > 0 && FD_ISSET(sock_fd, &rfds)){
ret = TRUE;
}
else{
ret = FALSE;
}
return ret;
}