我的++程序连接到我的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()”函数。
请不要让我安装第三方库。