Q&A

  • 소켓 프로그램: Asynchronous socket error 10061 원인은?
월간 마소 97년 11월 소켓 프로그래밍 예제를 따라하고 있는데 델파이 3으로 코딩이 되어있는 것을 델파이 4에서 그대로 따라했습니다. 그랬더니 넘 어려운 에러가 떠서

황당해 하고 있습니다. 윈2000서버에서 했구요



코딩입니다...



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ScktComp, StdCtrls;



type

TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

ClientSocket1: TClientSocket;

procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

procedure Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.ClientSocket1Read(Sender: TObject;

Socket: TCustomWinSocket);

var

str:string;

begin

str:=socket.ReceiveText;

memo1.lines.add(str);

end;



procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key=vk_return then

ClientSocket1.socket.SendText(edit1.text);

end;



end.



에러메세지는



Project Project1.exe raised exception class EsocketError with message 'Asynchronous socket error 10061'. Process stopped. Use Step or Run to continue



잉잉 좀 도와 주세요...

3  COMMENTS
  • Profile
    volf 2000.11.08 06:54
    이제 됩니다.

  • Profile
    각시탈 2000.11.07 21:26
    volf wrote:

    > 월간 마소 97년 11월 소켓 프로그래밍 예제를 따라하고 있는데 델파이 3으로 코딩이 되어있는 것을 델파이 4에서 그대로 따라했습니다. 그랬더니 넘 어려운 에러가 떠서

    > 황당해 하고 있습니다. 윈2000서버에서 했구요

    >

    > 코딩입니다...

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > ScktComp, StdCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > Edit1: TEdit;

    > Memo1: TMemo;

    > ClientSocket1: TClientSocket;

    > procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

    > procedure Edit1KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > procedure TForm1.ClientSocket1Read(Sender: TObject;

    > Socket: TCustomWinSocket);

    > var

    > str:string;

    > begin

    > str:=socket.ReceiveText;

    > memo1.lines.add(str);

    > end;

    >

    > procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > begin

    > if key=vk_return then

    > ClientSocket1.socket.SendText(edit1.text);

    > end;

    >

    > end.

    >

    > 에러메세지는

    >

    > Project Project1.exe raised exception class EsocketError with message 'Asynchronous socket error 10061'. Process stopped. Use Step or Run to continue

    >

    > 잉잉 좀 도와 주세요...



    Server Program에서

    scktsrvr.exe가 실행되고 있어야 한다고 알고 있는데요..

    scktsrvr.exe를 실행해 보시고 한번더 해보시죠.//

    c:Program FilesBorlandDelphi4Bin에 있습니다.



    글구

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    if key=vk_return then

    begin

    ClientSocket1.socket.SendText(edit1.text);

    key=0; <- 키 초기화 : 키값을 돌려 줘야 나중에도 이키를 쓸수 있을듯..

    (잘은 모르겠지만.. 위에서는 이부분도 빠진것 같군요..)

    end;

    end;



  • Profile
    김하늘 2000.11.07 21:26
    물론 실행시켰을때 에러가 발생하겠지요

    아마도 Edit1KeyDown에서 엔터키를 쳤을때

    소켓을 상대적으로 연결할 곳이 있어야 하는데

    코딩내용으로는 클라이언트에서 메시지를 보내는 것만 있는 것 같네요

    서버로 일단 연결이 되야하고 그럴러면

    서버에도 서버용 프로그램이 구동되어 있어야 합니다.

    그리하야 연결된 그곳으로 메시지를 보내고 받을 수 있슴당

    중략부분없고 end.가 있으니 소스내용이 다라면 말이지요...





    volf wrote:

    > 월간 마소 97년 11월 소켓 프로그래밍 예제를 따라하고 있는데 델파이 3으로 코딩이 되어있는 것을 델파이 4에서 그대로 따라했습니다. 그랬더니 넘 어려운 에러가 떠서

    > 황당해 하고 있습니다. 윈2000서버에서 했구요

    >

    > 코딩입니다...

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > ScktComp, StdCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > Edit1: TEdit;

    > Memo1: TMemo;

    > ClientSocket1: TClientSocket;

    > procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

    > procedure Edit1KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > procedure TForm1.ClientSocket1Read(Sender: TObject;

    > Socket: TCustomWinSocket);

    > var

    > str:string;

    > begin

    > str:=socket.ReceiveText;

    > memo1.lines.add(str);

    > end;

    >

    > procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > begin

    > if key=vk_return then

    > ClientSocket1.socket.SendText(edit1.text);

    > end;

    >

    > end.

    >

    > 에러메세지는

    >

    > Project Project1.exe raised exception class EsocketError with message 'Asynchronous socket error 10061'. Process stopped. Use Step or Run to continue

    >

    > 잉잉 좀 도와 주세요...