主题:VC++ 网络连接超时现象
我编了一程序,当外网IP改变时就刷新一次网页,有时网页会刷新,但当外网IP连续改变时有时会出现网络连接超时现象,一旦出现了这种现象网页就不会再刷新了。
部分代码如下:
label:CString str1=GetLocalIpAddress();//GetLocalIpAddress()是获取外网IP的函数,但当外网IP连续改变时有时会出现连接超时现象,我想实现当网络连接超时时仍会一直连接下去,直到获取到外网IP为止,而不是弹出一个警告提示消息框
for(i=0;;i++)//死循环,一直到外网IP改变了
{
CString str2=GetLocalIpAddress();//str2是用来接收改变后的外网IP的,同理,这行代码也会出现连接超时的现象
if(str1.Collate(str2)!=0)//如果外网IP改变了
{
for(int i=0;i<szList.GetCount();i++)//刷新打开的网页
{
HWND hIE;
hIE=::FindWindow(NULL,NULL);
if(hIE!=NULL)
{
::PostMessage(hIE,WM_KEYDOWN,VK_F5,1);
::PostMessage(hIE,WM_KEYUP,VK_F5,1);//向网页窗口发送“F5”以实现刷新网页的目的
}
}
goto label;//外网IP改变后就跳转到label处执行,然后把改变后的外网IP重赋值给str1
}
}
}
这个问题可能需要用到异常处理,但我不知到该如何处理,希望高手指点一二,谢谢!
部分代码如下:
label:CString str1=GetLocalIpAddress();//GetLocalIpAddress()是获取外网IP的函数,但当外网IP连续改变时有时会出现连接超时现象,我想实现当网络连接超时时仍会一直连接下去,直到获取到外网IP为止,而不是弹出一个警告提示消息框
for(i=0;;i++)//死循环,一直到外网IP改变了
{
CString str2=GetLocalIpAddress();//str2是用来接收改变后的外网IP的,同理,这行代码也会出现连接超时的现象
if(str1.Collate(str2)!=0)//如果外网IP改变了
{
for(int i=0;i<szList.GetCount();i++)//刷新打开的网页
{
HWND hIE;
hIE=::FindWindow(NULL,NULL);
if(hIE!=NULL)
{
::PostMessage(hIE,WM_KEYDOWN,VK_F5,1);
::PostMessage(hIE,WM_KEYUP,VK_F5,1);//向网页窗口发送“F5”以实现刷新网页的目的
}
}
goto label;//外网IP改变后就跳转到label处执行,然后把改变后的外网IP重赋值给str1
}
}
}
这个问题可能需要用到异常处理,但我不知到该如何处理,希望高手指点一二,谢谢!