写一个蜘蛛,用以下代码获取网页的源代码
CString CInternet::GetSCOfWP(CString url)
{
CString myData;
try
{
//获取源代码
CInternetSession mySession(NULL,0);
CHttpFile * myHttpFile = NULL;
CString tmp;
myHttpFile = (CHttpFile*)mySession.OpenURL(url);
while(myHttpFile->ReadString(tmp))
{
myData += tmp;
}
myHttpFile->Close();
mySession.Close();
}
catch(...)
{
return NULL;
}
return myData;
}可是有时候会很久没反映,可能是那个站点速度太慢了,或者阻塞了?不管什么原因,希望能做成这个样子,开始获取的时候就设一个定时器,超过20秒的就直接reutrn NULL,可是timer的回调函数怎么写啊?我的是控制台程序,不知道该如何写才能在超时的时候给调用GetSCOfWP(CString url)的函数返回一个NULL,用线程吗?该怎么写呢?或者谁知道CInternetSession如何设置成非阻塞模式?我真的愁死了...