我写了一个服务程序,利用FTP来上传或下载文件。如果从多个站点
下载文件,则对每一个站点启动一个FTP线程;但是发现有时某个站点网络不通
时,对应的FTP线程有可能一个小时后才能结束(从无法建立FTP连接处返回)。
请问各位朋友,怎么回事?FTP线程函数描述如下:DWORD FtpThread(LPVOID lpParam)
{
// Open an internet session HINTERNET hIntSession = ::InternetOpen(_T("MyFtp"), INTERNET_OPEN_TYPE_PRECONFIG,
NULL, NULL, 0);
if(hIntSession == NULL)
{
// 写日志
return 0;
} // Open a FTP session. HINTERNET hFtpSession = ::InternetConnect (hIntSession, szServerAddr,
INTERNET_DEFAULT_FTP_PORT,
szServerFtpUser, szServerFtpPwd,
INTERNET_SERVICE_FTP, 0, 0) ;
if(hFtpSession == NULL)
{
// 写日志
InternetCloseHandle(hIntSession);
return 0;
} // 上传或下载文件 return 1;
}
下载文件,则对每一个站点启动一个FTP线程;但是发现有时某个站点网络不通
时,对应的FTP线程有可能一个小时后才能结束(从无法建立FTP连接处返回)。
请问各位朋友,怎么回事?FTP线程函数描述如下:DWORD FtpThread(LPVOID lpParam)
{
// Open an internet session HINTERNET hIntSession = ::InternetOpen(_T("MyFtp"), INTERNET_OPEN_TYPE_PRECONFIG,
NULL, NULL, 0);
if(hIntSession == NULL)
{
// 写日志
return 0;
} // Open a FTP session. HINTERNET hFtpSession = ::InternetConnect (hIntSession, szServerAddr,
INTERNET_DEFAULT_FTP_PORT,
szServerFtpUser, szServerFtpPwd,
INTERNET_SERVICE_FTP, 0, 0) ;
if(hFtpSession == NULL)
{
// 写日志
InternetCloseHandle(hIntSession);
return 0;
} // 上传或下载文件 return 1;
}
INTERNET_DEFAULT_FTP_PORT,
szServerFtpUser, szServerFtpPwd,
INTERNET_SERVICE_FTP, 0, 0) ;
这里的参数改一下试试!