[ CnUnix ] in KIDS 글 쓴 이(By): Nameless (One) 날 짜 (Date): 2006년 12월 2일 토요일 오후 01시 31분 30초 제 목(Title): Re: Listen socket을 close하지 않고 conn 일단... 평범하지 않은 운용정책이군요. 궂이 그렇게 하시겠다면 정석적인 방법은 별로 떠오르지가 않는군요. 1. linux시라면 net filter로 SYN packet을 막아두고 나머지 처리를 할 수 있지 싶습니다만, super user여야하고 복잡하군요 2. 조금 더 상식적인 생각으로, fake client를 몇 만드시는게 좋지 싶습니다. backlog수 +1 만큼 fake connection을 생성하세요. 문제는 이 connection들이 accept되면 안된다는 사실입니다. server쪽에서 accept를 해봐서 정상적인 client면 처리를 해주시고, fake client면, fake client하나를 더 접속시도합니다. client측은 thread하나 만들어서 수없이 계속 connection만 시도하도록 하는게 어떨까 싶군요. 이걸 정확히... accept된 fake client는 없고, client측에서는 모두 connect된 상황이 되면, (listen상태인) server socket을 close하셔도 되겠습니다. 흠.. 쓰고보니 전혀 상식적이지 않군요. 제가 한 말이 맞는지 테스트나 해봐야겠습니다. @ 테스트해보니 대충 맞는 말로 보이는군요. 하지만 client의 connection 시도는 좀 타이트하게 하셔야 하겠습니다. |