[질문] 소켓서버에서 연결된 클라이언트수 아는 방법

익명 사용자의 이미지

안녕하세요. 리눅스에서 소켓 서버/클라이언트를 구현할때 질문이거든요.

1) 서버에서 현재 연결된 클라이언트 수가 얼마나 되는지 아는 방법?

2) 서버에 동시에 접속하는 클라이언트 수를 예를 들어 한 100개를 지원하
고자 한다면, 어떻게 해야 하는지 개략적인 설명좀....부탁드려요.
Select의 Mask를 셋팅해서 하는거 같은데, 잘 이해가 안되서요..
간단한 개념만이라두 부탁드려요..^^

답변부탁드려요. 고맙습니다.

익명 사용자의 이미지

제니 wrote..
안녕하세요. 리눅스에서 소켓 서버/클라이언트를 구현할때 질문이거든 요.

1) 서버에서 현재 연결된 클라이언트 수가 얼마나 되는지 아는 방법?

$ netstat -an | grep 포트 | grep ESTABLISH | wc -l

해당 포트에 대해 연결된 상태인 클라이언트의 수

2) 서버에 동시에 접속하는 클라이언트 수를 예를 들어 한 100개를 지원 하
고자 한다면, 어떻게 해야 하는지 개략적인 설명좀....부탁드려요.
Select의 Mask를 셋팅해서 하는거 같은데, 잘 이해가 안되서요..
간단한 개념만이라두 부탁드려요..^^

소켓은 유닉스 및 리눅스에서 파일로 인식합니다.
즉, file-max값이 동시 서비스 가능한 클라이언트 수이져...

/sbin/sysctl -an | grep file-max

로 검색하시면 최대 열수 있는 파일수가 나옵니다.
이부분은 /etc/sysctl.conf 또는 직접 sysctl명령으로
지정하실수 있습니다..

그럼..


답변부탁드려요. 고맙습니다.

익명 사용자의 이미지

lsof를 사용하시면 편할걸요 !

익명 사용자의 이미지

제니 wrote..
안녕하세요. 리눅스에서 소켓 서버/클라이언트를 구현할때 질문이거든 요.

1) 서버에서 현재 연결된 클라이언트 수가 얼마나 되는지 아는 방법? -> 프로그램내에 탑재하고 싶다면 TCP이면 accept시에 카운트를 하고
커넥션 종료시에 줄여나간다면 쉽게 알수있겠지여. 아니면
외부명령어로는 netstat가 있겠구여..

2) 서버에 동시에 접속하는 클라이언트 수를 예를 들어 한 100개를 지원 하
고자 한다면, 어떻게 해야 하는지 개략적인 설명좀....부탁드려요.
Select의 Mask를 셋팅해서 하는거 같은데, 잘 이해가 안되서요..
간단한 개념만이라두 부탁드려요..^^ -> 위 카운트로 accept를 제한 가해두 되겠지여 ^^

이상 허접 답변이었습니다 ^^

익명 사용자의 이미지

내용무