| [ CnUnix ] in KIDS 글 쓴 이(By): ddaeng (김 경 철) 날 짜 (Date): 2003년 8월 7일 목요일 오후 03시 23분 24초 제 목(Title): Re: Unix Domain Socket 한 기계에서 코넥션 수천개 받는 그런 비슷한짓을 저도 하고 있습니다. 여러 방법을 검토했었는데, select()를 써서 여러개의 코넥션을 처리하는 프로세스를 여러개 만들자로 결론을 내리고 만들어서 여태 잘 돌리고 있습니다. mux를 하나 만들어서 각 mux에서 fd 31번 내지 63번까지만 받게 하고 메인 프로그램에서는 역시 fd 31번 내지 63번까지만 받게했습니다. 메인프로세스 하나 + mux 31내지 63개. 31*31 = 961 63*63 = 3969 fd copy할때 long 128개 카피 안하고 딱 두개까지만 카피하고 말고, FD_ISSET()등으로 검사할때도 31번내지 63번까지만 돌면 되고.. 중간에 프로세스가 하나 더 있으니 latency는 좀 생기지만 그런대로 쓸만합니다. bsd계열이라면 kqueue()를 쓰시는것이 제일 현명한 답일듯. |