소켓 클라이언트 프로그램을 짜다가 곤경에 처했습니다.
부디 도와주시길 바랍니다.
서버 프로그램은 리눅스에서 파이썬으로 멀티쓰레드 이용해서 구현하였구요
클라이언트 프로그램은 델파이 TClientSocket 컴포넌트를
이용해서 구현했습니다. non-Blocking모드로 했구요...
그런데 클라이언트에서 Connect 명령을 내리면
(ClientSocket.Active := True; 이렇게..)
클라이언트 폼이 5초이상 멈춰버립니다.(아무버튼도 작동안고요...)
그 이후에는 메시지도 잘가구 잘 오고 별 탈이 없는데...
처음 시작이 이렇게 말썽입니다.
소켓을 이용하면 원래 이런건지....non-Blocking이라서 그런지
아니면 서버에서 잘못해서 그런지...도무지 감이 안잡히네요.
원인을 알아낼 수 있는 진단방법이나, 해결책을 알려주셨으면
고맙겠습니다.
그럼 부탁드립니다. 복 많이 받으세요~ ^^
원래 TCP라는 프로토콜이 OS나 H/W에 관계없도록 설계되었기 때문입니다.
클라이언트 프로그램을 한번 더 살펴 보시져...
oranzi wrote:
>
> 소켓 클라이언트 프로그램을 짜다가 곤경에 처했습니다.
>
> 부디 도와주시길 바랍니다.
>
> 서버 프로그램은 리눅스에서 파이썬으로 멀티쓰레드 이용해서 구현하였구요
>
> 클라이언트 프로그램은 델파이 TClientSocket 컴포넌트를
>
> 이용해서 구현했습니다. non-Blocking모드로 했구요...
>
> 그런데 클라이언트에서 Connect 명령을 내리면
> (ClientSocket.Active := True; 이렇게..)
>
> 클라이언트 폼이 5초이상 멈춰버립니다.(아무버튼도 작동안고요...)
>
> 그 이후에는 메시지도 잘가구 잘 오고 별 탈이 없는데...
>
> 처음 시작이 이렇게 말썽입니다.
>
> 소켓을 이용하면 원래 이런건지....non-Blocking이라서 그런지
>
> 아니면 서버에서 잘못해서 그런지...도무지 감이 안잡히네요.
>
> 원인을 알아낼 수 있는 진단방법이나, 해결책을 알려주셨으면
>
> 고맙겠습니다.
>
> 그럼 부탁드립니다. 복 많이 받으세요~ ^^