Q&A

  • 델파이로 리눅스서버에 소켓연결할 때에...


소켓 클라이언트 프로그램을 짜다가 곤경에 처했습니다.



부디 도와주시길 바랍니다.



서버 프로그램은 리눅스에서 파이썬으로 멀티쓰레드 이용해서 구현하였구요



클라이언트 프로그램은 델파이 TClientSocket 컴포넌트를



이용해서 구현했습니다. non-Blocking모드로 했구요...



그런데 클라이언트에서 Connect 명령을 내리면

(ClientSocket.Active := True; 이렇게..)



클라이언트 폼이 5초이상 멈춰버립니다.(아무버튼도 작동안고요...)



그 이후에는 메시지도 잘가구 잘 오고 별 탈이 없는데...



처음 시작이 이렇게 말썽입니다.



소켓을 이용하면 원래 이런건지....non-Blocking이라서 그런지



아니면 서버에서 잘못해서 그런지...도무지 감이 안잡히네요.



원인을 알아낼 수 있는 진단방법이나, 해결책을 알려주셨으면



고맙겠습니다.



그럼 부탁드립니다. 복 많이 받으세요~ ^^

1  COMMENTS
  • Profile
    이경문 2001.10.12 19:23
    5초동안 멈춰 버린다는 것은 서버때문에 그런 것은 아닙니다.

    원래 TCP라는 프로토콜이 OS나 H/W에 관계없도록 설계되었기 때문입니다.

    클라이언트 프로그램을 한번 더 살펴 보시져...



    oranzi wrote:

    >

    > 소켓 클라이언트 프로그램을 짜다가 곤경에 처했습니다.

    >

    > 부디 도와주시길 바랍니다.

    >

    > 서버 프로그램은 리눅스에서 파이썬으로 멀티쓰레드 이용해서 구현하였구요

    >

    > 클라이언트 프로그램은 델파이 TClientSocket 컴포넌트를

    >

    > 이용해서 구현했습니다. non-Blocking모드로 했구요...

    >

    > 그런데 클라이언트에서 Connect 명령을 내리면

    > (ClientSocket.Active := True; 이렇게..)

    >

    > 클라이언트 폼이 5초이상 멈춰버립니다.(아무버튼도 작동안고요...)

    >

    > 그 이후에는 메시지도 잘가구 잘 오고 별 탈이 없는데...

    >

    > 처음 시작이 이렇게 말썽입니다.

    >

    > 소켓을 이용하면 원래 이런건지....non-Blocking이라서 그런지

    >

    > 아니면 서버에서 잘못해서 그런지...도무지 감이 안잡히네요.

    >

    > 원인을 알아낼 수 있는 진단방법이나, 해결책을 알려주셨으면

    >

    > 고맙겠습니다.

    >

    > 그럼 부탁드립니다. 복 많이 받으세요~ ^^