CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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의 입장에서 어떤 걸 '정상'으로 판단하고 어떤걸

 '비정상'으로 판단할 수 있을까 하는 거지요.

 위에서 말한데로 걍 배째고 있습니다. ㅎㅎ

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.