Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[9099] idTCPClient & idFTP사용법에 대한 질문???
손동섭 [] 2756 읽음    2004-01-30 23:19
TImgTrans.GetScanImg를 제공하는 Class입니다.

idTCPClient를 사용하여 서버측에 파일명을 송신하면
서버측에서는 파일을 /DataTemp 에 생성하여줍니다.
그러면 idFTP를 사용하여 그 파일을 받아오는 Class입니다.

그런데 idTCPClient가 서버측에 연결되면 바로 Connected함수가 실행되기때문에
문제가 발생됩니다.  파일을 다 받아 올때까지 기다린다음 Return되어야 하는데,
어떻게하면 될까요?

아래의 소스를 보신 후 아시는 분은 리플 달아주세요.
--------------------------------------------------------------------
unit Trans;

interface

uses
  Forms,
  ExtCtrls, SysUtils, Classes, Dialogs,
  IdFTP, IDFTPCommon,
  IdTCPClient;
type
  TImgTrans = class
  private
    DocID : string;
    idFTP : TidFTP;
    idTCP : TidTCPClient;
    PParent : TComponent;
    procedure Connected(Sender: TObject);
    procedure DisConnected(Sender: TObject);
  public   
    function GetScanImg(aDocID: string; aParent: TComponent): string;
    ...
  end;


implementation

{ TScanTCP }

function TImgTrans.GetScanImg(aDocID: string; aParent: TComponent): string;
begin
  DocID := aDocID;
  PParent := aParent;

  idTCP := TIdTCPClient.Create(aParent);
  idTCP.OnConnected := Connected;
  idTCP.OnDisconnected := DisConnected;
  idTCP.Host := '112.112.112.1';
  idTCP.Port := 1594;
  idTCP.Connect;
end;

procedure TImgTrans.Connected(Sender: TObject);
begin
  idTCP.Write(docid);
  idTCP.Disconnect;

  idFTP := TidFTP.Create(PParent);
  idFTP.Host := '112.112.112.1';
  idFTP.Username := 'username';
  idFTP.Password := 'password';
  idFTP.Connect(True);
  idFTP.ChangeDir('/DataTemp');
  idFTP.TransferType := ftBinary;
  idFTP.Get(docid, ('c:\emr\scantemp\' + docid));
  idFTP.Delete(('DataTemp' + docid));
  idFTP.Disconnect;    
end;

procedure TImgTrans.DisConnected(Sender: TObject);
begin
  PParent := nil;
  idTCP.Free;
  idFTP.Free;
end;
end.

+ -

관련 글 리스트
9099 idTCPClient & idFTP사용법에 대한 질문??? 손동섭 2756 2004/01/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.