글쓴이: 익명 사용자 / 작성시간: 화, 2002/03/19 - 5:51오후
소켓을 통해 서버프로그램을 작성하고 있습니다.
서버프로그램은 소켓번호 4000 번을 열고 크라이언트 접속을 기다리도록
되어있습니다.
그런데 크라이언트로 부터 접속이 된후 다른 클라이언트에서 4000 번으로
다시 접속을 시도하면 연결됬다고 나옵니다.
서버에서 한포트만 열어서 접속이 되면 다른 연결은 거부해야 하는거
아닌가요 ?
방법을 못 찿겠네요 알수가 없습니다.
어떻게 해야 한 포트이상 접속이 안되게 할수 있나요
Re: 소켓의 이중접속문제
소스를 안봐서 모르겠지만..
accept()를 다시 안하시면 됩니다.. -_-a
accept()이란 넘에 대해서나 소켓에 대해 좀더 알아보심이..
한 포트에 여러 클라이언트가 접속되는건 전혀 이상한게 아닙니다..
Re: 소켓의 이중접속문제
int listen (
int s, /* 소켓번호 */
int log ); /* 연결을 기다리는 클라이언트의 최대 수 */
예를들어 아래의 코드는 서버가 최대 2개의 connect() 요청을 대기시킬 수 있으며, 세
번째 이후의 connect() 요청은 거절하여 클라이언트가 이 사실을 바로 알 수 있도록
해준다.
listen(s, 2);
Re^2: 소켓의 이중접속문제
클라이언트에서 접속된후 accept 는 물론 listen 을 다시하지는 않습니다.
read, write 밖에는 안하는데..
새로운 크라이언트에서 같은 포트로 접속하면 연결이 됩니다.
접속전의 listen 이 접속후에도 계속 영향을 미치는건 아닌지 모르겠네요
댓글 달기