라벨이 FTP인 게시물 표시

[C++] FTP 파일 찾기 예제 (FtpFindFirstFile)

1.  FtpFindFirstFile 함수 선언 HINTERNET FtpFindFirstFile( IN HINTERNET hFtpSession, IN LPCTSTR FileName OPTIONAL, IN LPWIN32_FIND_DATA FindData, IN DWORD Flags, IN DWORD Context); 2. 예제 void EnumFtpFiles() { HINTERNET hInternet; HINTERNET hFtpSession; HINTERNET hFind; WIN32_FIND_DATA fd; hInternet = InternetOpen( "WININET Sample Program", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); //Ftp Connect 부분 핸들은 HINTERNET 이다. hFtpSession = InternetConnect( hInternet, "ftp.foo.bar", INTERNET_DEFAULT_FTP_PORT, NULL, NULL, INTERNET_SERVICE_FTP, 0, 0); hFind = FtpFindFirstFile(hFtpSession, "pub/Misc/", &fd, 0, 0); if(hFind != NULL) do { printf("%s\n", fd.cFileName); //출력 해도 되고 Delete 해도 됨. } while(InternetFindNextFile(hFind, &fd)); //다음 파일로 넘겨서 다 찾을때 까지 반복. InternetCloseHandle(hFind); //핸들은 꼭 닫아주자 누수 확인 할것. InternetCloseHandle(hFtpSession); InternetCloseHandle(hInternet); } 출처 : < http://n...

[C++] FTP Timeout 설정 법 예제 (InternetSetOption)

FTP 연결, D ata 보낼 때, Data 수취 할 때 등 TimeOut 설정이 가능함. TimeOut이 가끔 안되는 버그가 있다고 함. 그럴 때는 Thread 에서 감시하는 함수를 만들어서 감시 해주면 됨. ​ 1. 함수 원형 BOOL InternetSetOption ( IN HINTERNET hInternet OPTIONAL,      //Ftp Internet 핸들(Internet 핸들 임) IN DWORD Option,     //Time Out Define 적어주면 됨.(Time Out 종류) IN LPVOID Buf,     //Time Out Buffer IN DWORD BufSize);     //Time Out Buffer Size } ​ 2. InternetSetOption 함수 인자 값. DWORD ms = 1000; InternetSetOption (hInternet, INTERNET_OPTION_CONNECT_TIMEOUT, &ms, sizeof(ms)); // InternetSetOption 함수가 타임아웃뿐만 아니라 다른 기능도 많다. 찾아 보시길.(지원 안되는 기능과 버그가 많긴 함.) ​ 3. 예제 void TestInternetOption() { HINTERNET hInternet; HINTERNET hFile; char Buf[1000]; DWORD ReadSize; BOOL bResult; DWORD ms; hInternet = InternetOpen( "WININET Sample Program", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if(hInternet == NULL) printf("InternetOpen err(%d)\n", GetLastEr...