如何检测Internet连接何时丢失 - WinINet - C ++

时间:2014-12-26 22:19:45

标签: c++ wininet

我的++程序连接到我的FTP服务器并执行一些大约需要10分钟的事情。我希望当连接丢失时,程序会等待,直到连接恢复然后恢复。这是我制作的代码(不完整,请阅读评论):

#include <WinINet.h> //and other headers
HINTERNET hIntSession;
HINTERNET hFtpSession;
using namespace std;

void ResetConnection() {
    if (hIntSession != NULL) InternetCloseHandle(hIntSession); //Do I need to add this line?
    do {
        if ((hIntSession = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0)) == NULL) continue;
        hFtpSession = InternetConnect(hIntSession, "x.example.com", 21, "user", "pass", INTERNET_SERVICE_FTP, 0, 0);
        if (hFtpSession == NULL) {
            InternetCloseHandle(hIntSession); continue;
        }
    } while (FALSE);

}

int main() {
    ResetConnection();

    /*
    FTP stuff
    if(is not connected) ResetConnection();

    FTP stuff
    if(is not connected) ResetConnection();

    and so on ...
    */

    InternetCloseHandle(hConnect);
}

另外,我不想使用额外的内存,所以也许我应该添加更多的“InternetCloseHandle()”函数。

请不要让我安装第三方库。

0 个答案:

没有答案