2016-12-24 1 views
0

ServerSocket(int port, int backlog)에 따라 backlog은 큐의 최대 길이를 나타냅니다.ServerSocket (int port, int backlog)에 따라 "백 로그"테스트에 문제가 있음

다음 코드 ServerSocket serverSocket = new ServerSocket(8001, 1);을 사용하여 backlog을 1로 사용하여 간단한 서버 소켓을 만들었습니다. 두 개 이상의 클라이언트가있는이 서버에 연결하려고하면 연결이 거부되는 예외가 발생합니다.

하지만 하나 이상의 클라이언트에서이 서버에 연결하려고 시도했을 때 나는 3 대의 클라이언트를 병렬로 연결할 수 있었고 모두 서버와 통신 할 수있었습니다.

내가 누락 된 항목이 있습니까?

답변

0

백 로그 매개 변수는 플랫폼에서 위아래로 조정할 수 있습니다. 실제 최소 백 로그는 처음에는 BSD 4.3에서 5였으며 일부 플랫폼에서는 50이나 500과 비슷합니다. 사용 된 실제 값을 판별하는 API는 없습니다.

+0

그래서'backlog' JVM이 큐에 대기 할 수있는 요청의 수를 결정할 수 없기 때문에'ServerSocket (int port, int backlog)'의이 생성자가 실제로'ServerSocket (int port)'보다 좋지 않음을 의미합니다. 청취 포트 ?? – hagrawal

+0

그것은 내가 말한 것을 의미하고 '때문에'부분은 * 비 연속 *입니다. – EJP

관련 문제