- 论坛徽章:
- 0
|
bool bSuc = false;
while(1)
{
fd_set rset;
FD_ZERO(&rset);
FD_SET(m_sktLink,&rset);
struct timeval tv;
tv.tv_sec = 60;
tv.tv_usec = 0;
int ret = select(m_sktLink+1,&rset,NULL,NULL,&tv);
if(ret < 0)
{
m_ofsLog<<"select error:"<<GetCurTime()<<endl;
break;
}
else if(ret == 0)
{
m_ofsLog<<"timeout:"<<GetCurTime()<<endl;
break;
}
else if(FD_ISSET(m_sktLink,&rset))
{
n = read(m_sktLink,ch,sizeof(ch)-1);
if(n == 0)
{
bSuc = true;
break;
}
ch[n] = 0;
m_ofsLog<<"reading "<<++times<<" :"<<GetCurTime()<<endl;
m_strPageContent += ch;
}
}
我的代码大概是这样子的,由于1分钟描述符没有准备好,超时了。
实际上我抓了很多网页,开始时速度很快,速度能有50K/s左右,现在只有23K/s左右了。 |
|