CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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()를 쓰시는것이 제일 현명한 답일듯.

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