Q&A

  • Socket연결상태를 알고싶습니다.

에고~~~제가 델파이에선 왕 초짜라서 이렇게 질문만 드리네요

제가 알기론  VB에선

   Socket.State하면 현재 Socket의 연결상태가 Interger값으로 알수 있거든요

   예를들면 State값이 7이면 연결완료, 6이면 연결중, 0이면 연결 끊김...

이런식이데..

델파이에선 TClientSocket을 사용하여 Socket연결을하면
현재 연결상태가 어떠한 상태인지 알수 있는 Function이 없는것 같아서요..

알려주시면 감사하겠습니다....
1  COMMENTS
  • Profile
    윤수아 2003.10.22 03:24
    ClientSocket의 연결상태는
    ClientSocket.socket.Connected 프로퍼티와 이벤트를 통해서 알 수 있습니다.
    이벤트에 대한 사항을 이벤트마다 디버깅 코드를 넣어셔서 연결이 진행되는 동안의 이벤트 순서를 직접확인해보시기 바랍니다.

    또한 에러에 대해서는 소켓 에러가 나게되면...
    OnError 이벤트로 빠집니다.
    인자에 보시면..Errorcode가 있을텐데 여기에 10061이니 10053이니 하는 에러코드가 넘어옵니다.
    ErrorCode를 0으로 해주시고...
    Socket.Close해주시면... 실행시..윈도우 에러 메세지는 막을 수 있습니다.

    그리고 재연결은 아마도 타이머를 쓰셔서 현재 연결 상태를 체크하셔야 할 거구요... 근데... 님이 쓰시는 컴포넌트 자체가 블록킹 소켓이 아니라서...
    코딩할 때 좀 애를 먹으실 겁니다.