读书人

关于fread超时有关问题

发布时间: 2012-02-11 09:51:34 作者: rapoo

关于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;
}

读书人网 >C语言

热点推荐