Ошибка 12003 FTP Ошибка загрузки файла
Привет и добрый вечер
Это сосредоточено для загрузки файла FTP с использованием C++. Я пытался загрузить файл FTP, и я получаю сообщение об ошибке 12003 в Интернете, я не видел ничего полезного... кажется раздражающим.
Мой код выглядит так
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <wininet.h>
#pragma comment (lib, "wininet.lib")
int main()
{
HINTERNET hInternet;
HINTERNET hFtpSession;
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if(!hInternet)
{
printf("Error : %d\n",GetLastError());
}
hFtpSession = InternetConnect(hInternet, "myohyip8.5gbfree.com", INTERNET_DEFAULT_FTP_PORT, "myohyip8", "WxqHjNGv", INTERNET_SERVICE_FTP, 0, 0);
if(!hFtpSession)
{
printf("Error : %d\n",GetLastError());
}
if (!FtpPutFile(hFtpSession, "C:\\ivan.txt", "myivan.txt", FTP_TRANSFER_TYPE_BINARY, 0))
{
printf("Error : %d\n", GetLastError());
}
else{
printf("File Upload Successful :)\n");
}
InternetCloseHandle(hFtpSession);
InternetCloseHandle(hInternet);
system("PAUSE");
return 0;
}
Это вызывает у меня беспокойство, у меня нет единой идеи о том, куда идти дальше, мне кажется ошибка файловой системы.
2 ответа
Первое, что я делаю при устранении проблем с ftp, это пытаюсь заставить обычную программу ftp (например, filezilla или что-то еще) подключиться и выполнить ту же операцию на той же машине. Если он сможет подключиться, вы сможете увидеть журнал разговоров сервера в этом программном обеспечении, который даст вам хорошие параметры для работы. Если вы не можете подключиться, вы увидите в том же журнале, в чем может быть проблема.
Без уверенности, что без использования такого программного обеспечения, я думаю, что у вас проблема с подключением в обычном режиме, и вы должны быть в пассивном режиме (по существу проблема с брандмауэром). Вы можете передать INTERNET_FLAG_PASSIVE от второго до последнего параметра вашего вызова InternetConnect. Это переключит его в пассивный режим.
например
hFtpSession = InternetConnect(hInternet, "myohyip8.5gbfree.com", INTERNET_DEFAULT_FTP_PORT, "myohyip8", "WxqHjNGv", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
Пассивный режим также исправил мою ошибку 12111, которой не было у других участников в моей группе, возможно, это связано с работой на дому через частный Wi-Fi, не уверен. Ниже добавлен истинный аргумент. m_pConnect = m_pSession->GetFtpConnection(m_server, m_user, m_password, INTERNET_INVALID_PORT_NUMBER, true);