History

FTP(FileZilla) 접속하기 본문

MFC/개인 실습

FTP(FileZilla) 접속하기

luckybee 2024. 4. 9. 10:06
728x90
반응형

 

1. FTP에 접속하기 위해서는 아래의 헤더파일과 lib를 포함시켜야 한다.

#include <Wininet.h>
#pragma comment(lib,"wininet.lib")
#include "direct.h"
 

2. 멤버 변수 선언

	HINTERNET mh_ftp_session;  //세션 생성을 위한 멤버 변수
	HINTERNET mh_ftp_connection;  //세션과 연결하기 위한 멤버 변수
 

 

 

3. 세션 생성하기

 

Win32 인터넷 함수를 사용하려면 세션을 생성해야 합니다. 세션은 InternetOpen 함수를 사용해서 생성할 수 있으며

다른 인터넷 함수를 사용할 때 사용됩니다. FTP 클라이언트를 만들기 위해서는 아래와 같이 InternetOpen 함수를

호출하여 세션을 생성하면 된다.

 

mh_ftp_session = ::InternetOpen(L"이름은 알아서 지으시면 됩니다.", INTERNET_OPEN_TYPE_DIRECT, NULL, 0, 0); 

//INTERNET_OPEN_TYPE_DIRECT   
//INTERNET_OPEN_TYPE_PRECONFIG
//전 레지에 등록이 되어있어서 그런가 둘 다 되네요
 

 

- INTERNET_OPEN_TYPE_PRECONFIG 레지스트리에서 미리 구성된 설정을 사용하여 연결합니다. 이 액세스 유형은 기본값으로 설정됩니다. TIS 프록시를 통해 연결하려면 dwAccessType을(를) 이 값으로 설정한 다음, 레지스트리를 적절하게 설정합니다.

 

- INTERNET_OPEN_TYPE_DIRECT 인터넷에 직접 연결합니다.

 

- INTERNET_OPEN_TYPE_PROXY CERN 프록시를 통해 연결합니다.

 

 

 

4. FTP에 접속하기

CString IpAddress = L"여기에 ip주소 넣으세요";
CString Password = L"여기에 비밀번호 넣으세요";
CString UserName = L"여기에 사용자 id 넣으세요";
	if (mh_ftp_session) {  //세션에 성공했을 때
	    	mh_ftp_connection = ::InternetConnect(mh_ftp_session,IpAddress ,
			INTERNET_DEFAULT_FTP_PORT, UserName , Password ,
			INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, (DWORD_PTR)this);   //INTERNET_SERVICE_FTP   //INTERNET_SERVICE_HTTP
	}
 

InternetConnect함수를 이용해서 FTP와 연결을 할건데 TCP/IP 기반이기 때문에 INTERNET_DEFAULT_FTP_PORT 값을 이용하여 인자값에 넣어준다.

 

INTERNET_DEFAULT_FTP_PORT==21(기본 포트)

 

 

 

5. 핸들 정리

 

사용한 핸들은 정리한다.

	if (mh_ftp_connection!=NULL) {
		::InternetCloseHandle(mh_ftp_connection);
	}
	if (mh_ftp_session != NULL) {
		::InternetCloseHandle(mh_ftp_session);
	}
 

 

 

728x90
반응형
Comments