WinNT 계열의 TCP/IP 설정에 보면 Accept 할 수 있는 소켓 개수를 제한해 놓은 부분이 있습니다. 리눅스에서 소켓 제한이 컴파일시에 걸리듯이 Windows 2000/XP의 경우(2003도 같다고 알고 있지만 확인은 안해봤네요.) 이 셋팅을 바꿔주지 않으면 Listen->Accept 할 수 있는 소켓의 개수는 1024 ~ 5000 번 이내에서만 할당이 되고 대략 3977 개 이상은 받을 수 없게 됩니다.
그렇지만 Windows 에서 이 사이에 쓰는 접속도 있고 여러가지 클라이언트 접속도 이 사이에 들어오는 경우가 많기 때문에 실제 접속은 3977 보다 적어지게 됩니다. 다음 레지값을 적용해주고 재시작(이 꼭 필요한지는 모르겠습니다만 저는 매번 재시작을 해줬네요.)을 해주시면 됩니다. 아래 레지는 TCP/IP 레이어에 작용하기 때문에 IIS나 기타 서비스등을 통한 대량의 접속을 받고 싶을때도 적용을 해주셔야 많은 동접을 받을 수 있습니다.
WinNT - Accept 가능한 기본 소켓 제한수 3800 늘리기.
C++/Network 2008/05/22 13:302. gpg에서 MaxUserPort로 검색하기.
3. 빗자루님 개인 홈페이지 관련글 http://www.myevan.net/phpBB/viewtopic.php?t=148
안녕하세요. 매크로 없는 메비~랍니다.
WinNT 계열의 TCP/IP 설정에 보면 Accept 할 수 있는 소켓 개수를 제한해 놓은 부분이 있습니다. 리눅스에서 소켓 제한이 컴파일시에 걸리듯이 Windows 2000/XP의 경우(2003도 같다고 알고 있지만 확인은 안해봤네요.) 이 셋팅을 바꿔주지 않으면 Listen->Accept 할 수 있는 소켓의 개수는 1024 ~ 5000 번 이내에서만 할당이 되고 대략 3977 개 이상은 받을 수 없게 됩니다.
그렇지만 Windows 에서 이 사이에 쓰는 접속도 있고 여러가지 클라이언트 접속도 이 사이에 들어오는 경우가 많기 때문에 실제 접속은 3977 보다 적어지게 됩니다. 다음 레지값을 적용해주고 재시작(이 꼭 필요한지는 모르겠습니다만 저는 매번 재시작을 해줬네요.)을 해주시면 됩니다. 아래 레지는 TCP/IP 레이어에 작용하기 때문에 IIS나 기타 서비스등을 통한 대량의 접속을 받고 싶을때도 적용을 해주셔야 많은 동접을 받을 수 있습니다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000fffe
"TcpWindowSize"=dword:00004470
p.s.테스트 한번 더 부탁합니다. ^____^
p.s.2.물론.. 소켓이 한계이상 올라가면 그것도 곤란합니다. 1만개만 해도 10k 이고 기본 소켓당 버퍼를 32KB 씩만 할당해 주더라도 320MB가 순수하게 소켓 버퍼로 사용되게 됩니다. 하드하죠..? (라지만 요즘 서버들 1~2G는 기본이고 좀 넉넉히 4G씩 주기도 하죠.)