네트워크 프로그램에서 랜선 뽑았을때 이벤트는 무엇인가요
글쓴이: linuxs / 작성시간: 월, 2005/02/14 - 11:58오전
네트워크 프로그램을 제작하고 있습니다.
서버에 연결하는 프로그램인데 서버에 연결 된 상태에서 서버에서 랜선을 뽑으면 서버(윈도우프로그램)에서는 이벤트가 발생한다고 합니다. 이 때 관련 연결된 소켓을 다 죽인다고 합니다.
이 때 다시 연결을 해야 하는데 클라이언트에서는 랜선이 뽑여있었다는 사실을 모릅니다. 어떻게 랜선이 뽑였있는지 알 수 있나요?
select 관련 해서 찾아봤는데 잘 모르겠습니다.
다시 정리하자면 클라이언트에서 랜선이 뽑여있을때를 알아서 다시 연결을 할려고 합니다.
조언 부탁드립니다.
Forums:
http://bbs.kldp.org/viewtopic.php?t=4849
http://bbs.kldp.org/viewtopic.php?t=48491&highlight=%C0%CC%B4%F5%B3%DD
요기 참고 하세요.
Fever Pitch!
자신의 머신의 랜선 연결 유무는 지나가는새님께서 알려주신내용을 보면
자신의 머신의 랜선 연결 유무는 지나가는새님께서 알려주신
내용을 보면 도움이 되겠는데
질문의 보니 자신의 머신이 아닌 다른쪽 머신의 랜선 상태를
알수 없다는게 문제인것 같군요. 맞나요? ^^
그렇다면 keepalive 로 검색해 보세요.
그리고 간단히 해결법을 알려드리면
polling 이라고 하는건데
상대에게 일정 간격으로 메시지를 보내고 그에 상응하는 응답이 없다면 끊긴것으로 간주하는 겁니다.
혹은
상대에게 일정 간격으로 서로 메시지는 보내고, 받는 쪽에서는 일정 간격으로 안들어오면 끊긴것으로 간주하는거죠.
가령 서로 10초 간격으로 dummy 패킷을 보내고 수신측에서는 dummy 패킷이 30초 동안 수신이 되지 않으면 끊긴것으로 간주.
네 감사합니다. keepalive 기법을 이용하면 되겠네요.이미 소켓
네 감사합니다. keepalive 기법을 이용하면 되겠네요.
이미 소켓옵션으로 할 수 있다고 합니다. 그런데 2시간정도 후에 알 수 있다고 하네요.. 그래서 그냥 체크 데이타 보내고
일정시간동안 응답없으면 다시 연결을 시동하도록 하겠습니다.
조언 감사합니다.
꿈은 이루어진다.
댓글 달기