자바 서버 클라이언트 예제

연결되지 않은 소켓을 만듭니다. connect() 메서드를 사용하여 이 소켓을 서버에 연결합니다. 새 클라이언트마다 수락 호출에서 반환되는 새 소켓이 서버가 필요합니다. serverSocket은 연결된 클라이언트의 요구를 충족하면서 연결 요청을 계속 수신하는 데 사용됩니다. 우리는 우리의 첫 번째 예에서 아직 이것을 허용하지 않았습니다. 소켓을 닫으면 이 Socket 개체가 더 이상 서버에 다시 연결할 수 없게 됩니다. 너무 빠르면 서버가 자체 초기화하고 포트에서 수신 대기를 시작하기 전에 클라이언트를 시작할 수 있습니다. 이 경우 클라이언트에서 스택 추적이 표시됩니다. 이 경우 클라이언트를 다시 시작하기만 하면 됩니다. 이는 서버가 연결을 종료하기 전에 한 번만 통신하는 초기 예제에 비해 개선된 것입니다. 이제 세션이 끝나면 서버에 종료 신호를 보냅니다.

서버가 해당 포트에 성공적으로 바인딩되면 ServerSocket 개체가 성공적으로 생성되고 서버가 클라이언트의 연결을 수락하는 다음 단계로 계속됩니다(리소스 사용 문의 다음 문): 안녕하세요. 서버를 설정하고 연결도 잘 작동합니다. 난 그냥 궁금, 당신이 클라이언트에서 시작 인수를 변경할 필요가 없도록 포트 번호를 설정할 수 있습니다 때마다? 현재 서버는 클라이언트가 연결될 때까지 차단한 다음 클라이언트의 메시지를 수신하기 위해 다시 차단하며, 단일 메시지 후 연속성을 처리하지 않았기 때문에 연결을 닫습니다. 서버 소켓이 대기 중이던 포트를 반환합니다. 이 메서드는 생성자의 포트 번호로 0을 전달하고 서버가 포트를 찾도록 하는 경우에 유용합니다. java.net.Socket 및 java.net.Server소켓은 소켓 및 소켓 서버를 구현하는 자바 클래스입니다. 이제 while 루프 내에서 accept를 호출합니다. while 루프가 실행될 때마다 새 클라이언트가 연결될 때까지 accept 호출을 차단한 다음 처리기 스레드인 EchoClientHandler가 이 클라이언트에 대해 만들어집니다. 그런 다음 몇 가지 요청으로 에코 서버를 테스트해 보겠습니다: 소켓 프로그래밍의 클라이언트는 두 가지 정보를 알고 있어야 합니다: EchoClient를 사용하여 서버를 테스트하고, 이번에는 서버에서 여러 메시지를 보내고 받는 여러 클라이언트를 만듭니다.

서버 코드가 accept 메서드를 만나면 클라이언트가 연결 요청을 할 때까지 차단합니다.

This entry was posted in Uncategorized. Bookmark the permalink.