|
안녕하세요.. 얼마전에 인디 9.0.2 버전을 받아서 깔아보았습니다..
그랬더니 .. FTPServer 컴포넌트가 있더군요 ...
괜찮은거 같아서 사용을 해볼려고 하는데 .. 좀처럼 참고할만한 내용이 없네요 ...
인터넷 뒤지고 델마당 가보고.. 웬만한 짓을 다 해봤는데 ...
인디 9.0.2에 대한 데모라던지 참고할 만한 것은 왜 이렇게도 없는지 ..
헬프만 보고 하기는 너무 벅찹니다.. 인디는 왜 이렇게 헬프를 이상하게 만드는지 몰러 (--;)
현재 FTPServer 에 접속하고 끝내고 하는 것 까지는 어떻게 된거 같은데 ...
클라이언트에서 리스트를 요청하면 서버에서 처리하는 방법을 정확하게 잘 모르겠습니다 ..
그리고 나머지 파일 업로드, 다운 로드 등두요...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ftpclient->Host = "203.xxx.xxx.xxx";
ftpclient->Port = 21;
ftpclient->Username = "anonymous";
ftpclient->Password = "anonymous";
try {
ftpclient->Connect(TRUE);
// ftpclient->ChangeDir("/");
ftpclient->List(ListBox1->Items, "", TRUE);
}
catch(...) {
}
}
//---------------------------------------------------------------------------
클라이언트에서는 대충 저정도로 했습니다. 접속은 잘 되는거 같았습니다...
void __fastcall TForm1::ftpserverListDirectory(TIdFTPServerThread *ASender,
AnsiString APath, TIdFTPListItems *ADirectoryListing)
{
TSearchRec sr;
TIdFTPListItem *pItem;
int FindResult;
ADirectoryListing->DirectoryName = "c:\\indy";
FindResult = FindFirst("c:\\indy\\*.*", faAnyFile, sr);
while (FindResult == 0) {
pItem = ADirectoryListing->Add();
pItem->FileName = sr.Name;
pItem->OwnerName = "xxx";
pItem->GroupName = "all";
pItem->OwnerPermissions = "---";
pItem->GroupPermissions = "---";
pItem->UserPermissions = "---";
pItem->ItemType = ditDirectory;
FindResult = FindNext(sr);
}
FindClose(sr);
}
서버에 있는 OnListDirectory 이벤트에 저렇게 했는데... 리스트가 잘 안날라 옵니다..
외부 콘솔로 접근하면 접속까지는 잘되고
ftp>ls 엔터
하면 리스트는 나오지 않고 ....
ftp>ls
200 PORT Command successful.
226 Closing data connection.
이런 형태로만 나오고 몇번을 반복하다 보면 자동으로 끊어져 버립니다...
델마당에서 어떤분이 IdFTPServer.pas 소스 자체에 문제가 있었다는 말이 있어 그부분을 수정
해 봤는데도.. 잘 안되는건 마찬가지인것 같습니다..
혹시 인디 FTPServer 좀 사용해보신 분이나 아시는 분 없으신가요? 도와주세요 ...
|