Q&A

  • Winshoe socketError 10053...
OS : Win2000

tool : Delphi4 c/s



안냐세요.

winshoe로 C/S를 짜는데..신기한게 있어서요.

connect후에 프로그램을 종료하면 disconnect프로시저가 호출됩니다.

그런데. 10053 에러가 나네요.

신기한건 델파이에서 실행하면 에러가 나고

생성된 실행파일을 실행하면 에러가 나지 않는겁니다.

왜 그렇죠? winshoe사용해보신분 설명좀해주세요.

-----connect부분------

try

Client.Connect;

Client.Writeln('Welcome!!');

RecvThread := TRecvThread.Create(False);

ClientStatusFlag := True;

except

on EWinshoeSocketError do begin

ShowMessage('서버에 연결할수 없어여!!');

Application.Terminate;

end;

end;

--------disconnect-------------------

procedure TmainFrm.disconnect;

begin

if ClientStatusFlag then begin

ClientStatusFlag := False;

RecvThread.Terminate;//메세지Receive쓰레드

repeat

Application.ProcessMessages;

until RecvThread.Terminated;

Client.Disconnect;

end;

end;

----------formclose시 disconnect를 호출----------------

procedure TmainFrm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

disconnect;

Action := caFree;

end;

3  COMMENTS
  • Profile
    최용일 2000.04.21 01:10
    안녕하세요. 최용일입니다.



    말씀하신 에러가 예외인것 같군요. 델파이에서는 특별히 옵션에서 바꾸어 주지않는한



    델파이상에서 Run할때는 Except구문이 있든없든 무조건 델파이가 예외를 가로채서



    보여줍니다. 그러니까 IDE내에서의 실행은 항상 에러(예외)를 보여주게됩니다.



    IDE내에서가 아니라면 제대로 예외가 처리되는것입니다. 이건 WinShoe와는 상관없이



    모든 예외는 델파이가 먼저 가로챕니다. 절대버그는 아니니까요 안심하시고 사용하세요.



    ^^ 항상 즐코하세요.



    이주흥 wrote:

    > OS : Win2000

    > tool : Delphi4 c/s

    >

    > 안냐세요.

    > winshoe로 C/S를 짜는데..신기한게 있어서요.

    > connect후에 프로그램을 종료하면 disconnect프로시저가 호출됩니다.

    > 그런데. 10053 에러가 나네요.

    > 신기한건 델파이에서 실행하면 에러가 나고

    > 생성된 실행파일을 실행하면 에러가 나지 않는겁니다.

    > 왜 그렇죠? winshoe사용해보신분 설명좀해주세요.

    > -----connect부분------

    > try

    > Client.Connect;

    > Client.Writeln('Welcome!!');

    > RecvThread := TRecvThread.Create(False);

    > ClientStatusFlag := True;

    > except

    > on EWinshoeSocketError do begin

    > ShowMessage('서버에 연결할수 없어여!!');

    > Application.Terminate;

    > end;

    > end;

    > --------disconnect-------------------

    > procedure TmainFrm.disconnect;

    > begin

    > if ClientStatusFlag then begin

    > ClientStatusFlag := False;

    > RecvThread.Terminate;//메세지Receive쓰레드

    > repeat

    > Application.ProcessMessages;

    > until RecvThread.Terminated;

    > Client.Disconnect;

    > end;

    > end;

    > ----------formclose시 disconnect를 호출----------------

    > procedure TmainFrm.FormClose(Sender: TObject; var Action: TCloseAction);

    > begin

    > disconnect;

    > Action := caFree;

    > end;

  • Profile
    이주흥 2000.04.21 03:02
  • Profile
    최용일 2000.04.21 03:47
    안녕하세요. 최용일입니다.



    디버거 옵션에 찾아보시면 Stop on Delphi Exceptions란 체크박스 항목(델5기준)이



    있읍니다. 이걸 꺼주시면 개발중에도 단독 실행때처럼 메세지를 감출수 있습니다.



    ^^ 항상 즐코하세요.



    이주흥 wrote:

    > 감