Q&A

  • 클라이언트 소켓에서 OnDisconnect 이벤트시...
일단 소스를..



procedure TForm1.clisocketDisconnect(Sender: TObject;

Socket: TCustomWinSocket);

var

nick:string;

begin

nick:='모모모모';

clisocket.Socket.SendText(nick);

end;





디스커넷트 이벤트시.. 문자열을 전송을 못하네요..



클라이언트 소켓에서.. 못보내는건지..



아니면 서버 소켓 에서 못받는건지... ㅜ.ㅜ



클라이언트 이벤트에서 OnDisconnect 를 주면..



서버쪽에서는..



OnClientDisconnect 이벤트로 받는것 아닌가요?



그리고.. 클라이언트 이벤트 OnDisconnect 는 어떨때 발생 하는건가요??



폼을 닫을때 발생 하는건가요?



아니면 따로 disconnect 을 코딩 해줘야 하나용?



질문이 두서 없더라도.. 이해해 주세요 ^^ (왕초보라서리)



그럼 고수님들의 답변 기다립니다....



이만..



2  COMMENTS
  • Profile
    이가을 2001.03.23 19:26
    지나가다가...

    저두 잘은 모르지만 작은 도움이나마 될까 해서엽..^^

    보통 OnDisconnect이벤트는 서버와의 연결이 끊어졌을 때 일어나거든여..

    그러니 이미 서버와 끊어진 후에 일어난 이벤트 안에 서버로 문자열을 보내는 코딩을 해봤자 실행될 리가 없지엽..^^*



    clisocket.Socket.SendText(); <- 이 문은 서버와 클라이언트간의 연결이 된 후에나 먹히는 거지엽..적어두 OnConnect이벤트 이후에나 가능합니다.



    클라이언트는 서버와 끊어진 걸루 인식하므로 메세지를 보내지않구, 해서리 서버가 받은 메세지두 결국 없는거지여..



    이마루 wrote:

    > 일단 소스를..

    >

    > procedure TForm1.clisocketDisconnect(Sender: TObject;

    > Socket: TCustomWinSocket);

    > var

    > nick:string;

    > begin

    > nick:='모모모모';

    > clisocket.Socket.SendText(nick);

    > end;

    >

    >

    > 디스커넷트 이벤트시.. 문자열을 전송을 못하네요..

    >

    > 클라이언트 소켓에서.. 못보내는건지..

    >

    > 아니면 서버 소켓 에서 못받는건지... ㅜ.ㅜ

    >

    > 클라이언트 이벤트에서 OnDisconnect 를 주면..

    >

    > 서버쪽에서는..

    >

    > OnClientDisconnect 이벤트로 받는것 아닌가요?

    >

    > 그리고.. 클라이언트 이벤트 OnDisconnect 는 어떨때 발생 하는건가요??

    >

    > 폼을 닫을때 발생 하는건가요?

    >

    > 아니면 따로 disconnect 을 코딩 해줘야 하나용?

    >

    > 질문이 두서 없더라도.. 이해해 주세요 ^^ (왕초보라서리)

    >

    > 그럼 고수님들의 답변 기다립니다....

    >

    > 이만..

    >

  • Profile
    빙구 2001.03.23 19:20
    클라이언트를 그냥 종료시켜 버리면 서버에서는 클라이언트가 Disconnect가 발생했다고 인식을 합니다. 하지만 클라이언트는 그냥 바로 종료되어 버리는 걸로 알고 있습니다.

    간단한 구문 하나면 깨끗한 프로그램이 될수 있습니다.



    프로그램이 종료되는 이벤트부분에

    if Clientsocket.Active then

    clientsocket.active := False;

    라고 추가하시면