Q&A

  • FTP 접속 에러...
안녕하세요
제가 만든 프로그램이 회사내 직원들에게 모두 배포가 되었습니다.
툴은 델파이 5, 서버디비는 오라클,  임시디비는 파라독스.

그 프로그램은 수시로 업그레이드 되고 있습니다.
업그레이드된 프로그램은 서버의 한 디렉토리에 수작업으로 제가 옮겨다
놓습니다.  ....탐색기에서... VBoardaaaaaaaa.....카피해서 붙여넣기..
그리곤 직원들 스스로가 업그레이드 된것을  자기 컴으로 붙여넣기....
이 얼마나 하수의 수고수러움 입니까?  고생은 사서하고 있지요....몰라서..쩝

제가 이제 NMFTP 컴포넌트를 이용해 그 수고스러움을 일거에 날려버리려고
합니다.  한마디씩 도와 주십시오..

현재 서버의 그 디렉토리는 네트웍으로 연결이 됩니다. 어떤 컴에서든...

외부에서는 방화벽이 있어 접속이 제한되고요....

이럴때 NMFTP를 이용하라고 검색해 보니 무지무지 많네요..

헐 헐 처음부터 막히네요..

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   NMFTP1.Host := '10.124.0.4';
   NMFTP1.Port := 21;
   NMFTP1.TimeOut := 2000;
   NMFTP1.UserID := 'guest';
   NMFTP1.Password := 'guest';  
   try
    NMFTP1.Disconnect;  
    NMFTP1.Connect;
    showmessage('서버접속 성공');
   except
     showmessage('서버접속 실패');
   end;
end;

계속 접속 실패네요....

질문1. 네트웍으로 연결되어 있는데 NMFTP를 사용하지  않아도 할 수 있는
         방법이 없을까요?
질문2. 서버쪽에서 어떤 (접속가능하도록) 작업을 해 주어야 한다는데...
          무순 작업을 해야 하나요?

아무말씀 이라도 한마디씩 해주세요.
한마디 하면 열마디를 알아 듣.... 에고 에고  후다닥....
3  COMMENTS
  • Profile
    델파이탐크루즈 2002.06.01 03:13
    혹시...

    NT서버쪽에 익스체인지 깔아 놓으셨죠.......

    함 확인 해보시고.....

    그리고 깔아 놓으셨다면

    서비스에서 FTP가 올라왔는지 함 봐보심이

    좋을듯 싶군요..

    그리고 그것도 않되면

    지금 보니까 IP가 사설IP인듯 싶은데... 공인 IP로 바꿔보세요..

    그리고 코딩상에는 문제가 없습니다..

    만약 그렇게 다되어있다면 다시한번 질문에 올려놔보세요..

    봐드리져.........

    그럼 즐코........


  • Profile
    아폴론 2002.06.01 21:47


    답변해 주셔서 감사 합니다.
    서버쪽에는 제가 공부를  더 해야 할 것 같습니다.

    그래서 File Copy로 한번 해 볼려고 했습니다. 어떻습니까 아래 방법은
    무모한 방법 일까요?

    다음과 같이 했습니다. 테스트용으로다...

    procedure TForm1.BitBtn5Click(Sender: TObject);
    var dtDate,ctDate : Tdatetime;
        fh1,fh2 : integer;
        Buffer : array[1..1024] of char;
        icount : integer;
    begin
       //업그레이드 되어 보관되는 서버쪽 프로그램
       dtDate := FileDateToDateTime(FileAge'V:BoardProgramab.exe'));
       //User가 사용하는  프로그램  
       ctDate := FileDateToDateTime(FileAge('C:Traffic2pasab.exe'));
       if dtdate = ctdate then begin
          showmessage('프로그램이 변경되지 않았네요.!!');
       end else
       if dtdate <> ctdate then begin
          showmessage('프로그램이 변경되었네요.!!');
          fh1 := FileOpen('V:BoardProgramab.exe', fmOpenRead);
          if fh1 <> -1 then begin
             fh2 := FileOpen('C:TempTestab.exe', fmOpenWrite);
             if fh2 <> -1 then begin
                icount := FileRead(fh1,buffer, sizeof(buffer));
                while icount <> 0 do begin
                   fileWrite(fh2, buffer, icount);
                   icount := FileRead(fh1, buffer,Sizeof(buffer));
                end;
                //복사한 프로그램의 바뀐 시간이 현재시간이 들어감....
                showmessage('파일복사 완료');
             end else
             begin
               showmessage('복사대상이 없네요');
             end;
             Fileclose(fh2);
             Fileclose(fh1);
          end else
          begin
            showmessage('서버에 프로그램이 없네요');
          end;  
       end;

    end;

    end.

    또 문제발생.... 제대로 하는게 하나도 없넹.....

    복사된 디렉토리로 가서 확인 해보면 복사가 되긴 되었는데....
    날짜가 프로그램 을 실행한 날짜(현재시간(2002-06-01 오전 10:56:14)로 저장이 됩니다.   ab.exe를 업그레이드 한 날짜(2002-05-30 오후 20:10:30)가 저장 되어야 하는데...

    이를 어찌하면 좋겠습니까?....

  • Profile
    영덕 2002.07.02 21:02
    저도 자동업데이트 플그램을 제작하고 있죠

    파일 복사 방법은 서버가 NT, 2000이상이면 98사용자는 모두 사용자 등록을 해야 가능하죠

    하지만 FTP, HTTP를 이용하여 다운하면 사용자 등록없이도 가능한 거구여

    FTP 서버 접속이 실패 했다면 해당 서버의 FTP 서비스가 되고 있는지 확인을 해야 하죠

    이 MS 관련 서버이면 사용자 권한 설정을 잘하셔야 합니다.

    자치 잘못하면 서버가 해킹등의 보안 문제가 발생하죠