[ CnUnix ] in KIDS 글 쓴 이(By): bindung () 날 짜 (Date): 2006년 12월 5일 화요일 오후 06시 22분 25초 제 목(Title): Re: Listen socket을 close하지 않고 conn 음.. client에서 check하면 된다는 건 이해 했는데 그래도 여전히 backlog값을 모른다는건 어쩔수 없는 것 같네요. listen할때 1024로 backlog값을 준다고 해도 실제 backlog가 1024로 잡히는 건 아니거든요. 클 수도 있고 작을 수도 있고.. system마다 다르고 얻어올 방법은 없고.. 그리고 프로토콜(?)에 관한 문제는 아니고 죽기가 허용된 서버... 표현이 이상한데 한가지 기능을 하는 서버군이 존재하고 그 중 하나를 어떤 목적으로 '정상적'인 과정으로 내렸다가 다시 올리는 과정이 존재한다라고 하면 될까요? 뭐 그런 서버들이 존재한다고 하는거죠. 그리고 클라이언트 입장에서 어디에 접속해서 명령을 수행하게 되는데 서버에서 conn refuse를 받았다면 "아.. 얘는 정상적이고 아직 안뜬 얘겠구나" 라고 생각할 수 있죠. (물론 오랜 시간 그러면 또다른 경고를 발생시킬수 있겠지만요.) 그런데 conn reset을 받으면 클라이언트가 '내가 보낸 명령을 처리하다가 잘못되서 죽은' 건지 'shotdown 상황에 접어들어서 죽은' 건지 알 수가 없다는 겁니다. 그걸 구별하고 싶은건데 마땅한 방법이 없네요. @ㅎㅎ 이렇게 말하면 또 그냥 process를 detect하라던지 뭐 그런 다른 해결책을 말하실거 같은데 그냥 client의 입장에서 어떤 걸 '정상'으로 판단하고 어떤걸 '비정상'으로 판단할 수 있을까 하는 거지요. 위에서 말한데로 걍 배째고 있습니다. ㅎㅎ |