Senza categoria

서버 소켓 프로그래밍 예제

여기에서 서버는 소켓이 스트림으로 닫혀질 때까지 클라이언트와 메시지를 끝없이 교환할 수 있습니다. 이전 예제가 첫 번째 예제에 비해 개선되었지만 여전히 훌륭한 솔루션은 아닙니다. 서버는 많은 클라이언트와 많은 요청을 동시에 서비스할 수 있는 용량이 있어야 합니다. java.net.ServerSocket 클래스는 서버 응용 프로그램에서 포트를 가져오고 클라이언트 요청을 수신하는 데 사용됩니다. 스레드 내부에서 일어나는 일은 이전에 EchoServer에서 단일 클라이언트만 처리한 내용입니다. 따라서 EchoMultiServer는 while 루프에서 더 많은 클라이언트를 계속 수신 대기할 수 있도록 이 작업을 EchoClientHandler에 위임합니다. 이 문서의 모든 서버를 실행하는 방법에 주의를 기울이기 위해 주요 방법과 전역 변수를 포함합니다. 문서의 나머지 예제에서는 이러한 종류의 반복적인 코드를 생략합니다: Java Socket 프로그래밍은 연결 지향적이거나 연결이 필요 없습니다. 서버는 “노크! 노크!” 그래서 나중에 서버는 클라이언트가 말을 기다려야한다 “누가 거기?” 결과적으로 while 루프는 입력 스트림에서 읽기를 반복합니다. readLine 메서드는 클라이언트가 출력 스트림(서버의 입력 스트림)에 무언가를 작성하여 응답할 때까지 기다립니다. 클라이언트가 응답하면 서버는 KnockKnockProtocol 개체에 대한 클라이언트의 응답을 전달하고 KnockKnockProtocol 개체에 적절한 응답을 요청합니다. 서버는 println 호출을 사용하여 소켓에 연결된 출력 스트림을 통해 클라이언트에 회신을 즉시 보냅니다. KnockKnockServer 개체에서 생성된 서버의 응답이 “안녕”이면 클라이언트가 더 이상 농담을 원하지 않으며 루프가 종료된다는 것을 나타냅니다.

유닉스 도메인의 소켓 주소는 기본적으로 파일 시스템의 항목인 문자 문자열입니다. 이제 SocketClientExample 클래스를 실행하면 자바 소켓 서버에 요청을 보내고 콘솔에 응답 메시지를 인쇄합니다. 이를 수행하는 방법은 다른 스레드에서 클라이언트가 요청하는 모든 새 클라이언트 및 서비스에 대해 새 소켓을 만드는 것입니다. 동시에 제공되는 클라이언트 수는 실행 중인 스레드 수와 동일합니다. 연결이 설정되면 I/O 스트림을 사용하여 통신이 발생할 수 있습니다. 각 소켓에는 OutputStream과 InputStream이 모두 있습니다. 클라이언트의 OutputStream은 서버의 InputStream에 연결되고 클라이언트의 InputStream은 서버의 OutputStream에 연결됩니다. 소켓 호출에 대한 간략한 설명입니다.

도메인 및 유형에 대한 다른 많은 선택 사항이 있지만 가장 일반적인 항목입니다. 소켓 맨 페이지를 보려면 여기를 클릭하십시오. 그러나 이 예제에서는 서버가 연결을 닫기 전에인사말 응답만 보낼 수 있으므로 테스트를 다시 실행하면 연결이 거부됩니다. 다른 컴퓨터에 연결하려면 소켓 연결이 필요합니다. 소켓 연결은 두 컴퓨터가 서로의 네트워크 위치(IP 주소) 및 TCP 포트에 대한 정보를 가지고 있는 것을 의미합니다. java.net.Socket 클래스는 소켓을 나타냅니다.

Commenti disabilitati su 서버 소켓 프로그래밍 예제

Founder e direttore di "Perdersi a Roma" ha pubblicato libri di prose, poesie e narrativa di viaggio tra cui "Le persone" (Kolibris) e "Letti" (Voland).