클라이언트가 서버와 접속 끊고 나서 서버가 종료되었는데.
Network :
2007. 4. 24. 21:14
반응형
클라이언트에서 stop 버튼을 누르면 서버에게 종료 데이타를 보내고.. 서버는 종료 데이타를 받고 종료해도 좋다는 데이타를 다시 클라이언트에게 보내고 나서 서버는 클라이언트 소켓을 close하고 서버 자신의 소켓도 close하고 나서 종료하도록 코딩을 했는데요...
바로 이어서 서버를 다시 실행을 시키려고 하면 bind()에서 에러가 나네요...
시간이 좀 흐른뒤 하면 다시 에러 없이 잘 되고요...
이게 정상적인것인지 비정상적인것인지 몰라서요...
다시 말해 알고 싶은것은
서버 종료시 필요한 소켓 종료등은 다 했고 정상적인 종료를 했습니다...
그리고 나서 바로 서버를 다시 실행시키면 bind()부분에서 에러가 나고요... 그렇지만 시간이 좀 흐른뒤 실행 시키면 이상 없이 잘 동작합니다...
이유를 좀 알려주세요...
------------------------------------------------------------------------------------------------------
서버 소켙을 닫아 버려서 발생하는 것입니다. 어떻게 보면 정상적이라고 해야 겠습니다.
bind를 한번 실행하면 메모리가 해제 되기 전까지는 그포트 Address로 그 PC에서 bind되는 것을 막습니다. 그래서 그런 에러가 나는 것입니다. 계속적으로 클라이언트 접속이 가능하게 하려면 서버 소켙을 Close하지 않으면 됩니다.
실제 서버 운영시에는 당연히 그렇게 되겠죠.
반응형
'Network' 카테고리의 다른 글
accept() 함수 (0) | 2007.04.27 |
---|---|
소켓에서 서버에는 포트번호를 지정해주지만 클라이언트는 지정해주지 않는다. 그렇다면 서버는 (0) | 2007.04.24 |
BIND와 rndc를 이용한 유동IP에 동적도메인 설정하기 - 클라이언트 (0) | 2007.04.24 |