1 augusti, 2019 admin

자바 소켓통신 예제

다음은 클라이언트와 서버 간의 통신을 구현하는 while 루프입니다. 서버가 먼저 말하므로 클라이언트가 먼저 수신을 구해야 합니다. 클라이언트는 소켓에 연결된 입력 스트림을 읽음으로써 이 작업을 수행합니다. 서버가 말하는 경우 ”안녕”이라고 말하고 클라이언트는 루프를 종료합니다. 그렇지 않으면 클라이언트는 표준 출력에 텍스트를 표시한 다음 표준 입력에 입력하는 사용자의 응답을 읽습니다. 사용자가 캐리지 리턴을 입력하면 클라이언트는 소켓에 연결된 출력 스트림을 통해 서버로 텍스트를 보냅니다. 서버는 클라이언트가 연결을 요청할 수 있도록 소켓을 수신 대기하면서 기다립니다. 이것은 다음 단계에서 발생 : 나는 소켓 프로그래밍에 더 깊은 원하는 그래서 친구 .thank 당신에게 내 의견을 부탁드립니다. KnockKnockProtocol를 만든 후 코드 호출 KnockKnockProtocol의 processInput 메서드 서버 클라이언트에 보내는 첫 번째 메시지를 가져옵니다. 이 예제에서 서버가 가장 먼저 말하는 것은 ”노크! 노크!” 그런 다음 서버는 클라이언트 소켓에 연결된 PrintWriter에 정보를 기록하여 클라이언트에 메시지를 보냅니다.

소켓은 단순히 컴퓨터 간의 통신을 위한 끝점입니다. 소켓 클래스를 사용하여 소켓을 만들 수 있습니다. 여기에서 서버는 소켓이 스트림으로 닫혀질 때까지 클라이언트와 메시지를 끝없이 교환할 수 있습니다. 어느 사람이 말해 …. 멀티 크렌트 서버소켓 ……… 자바에서는 외부 클래스에서 스레드에 액세스하기위한 조항이 있습니다. 스레드는 소켓 클라이언트 중 하나입니다 ????? … ServerSocket 클래스를 사용하여 서버 소켓을 만들 수 있습니다. 이 개체는 클라이언트와의 통신을 설정하는 데 사용됩니다. 통신의 연속성을 허용하려면 while 루프 내부의 입력 스트림을 읽고 클라이언트가 종료 요청을 보낼 때만 종료해야 하며 다음 섹션에서 이 작업을 볼 수 있습니다.

서버 응용 프로그램을 만들려면 ServerSocket 클래스의 인스턴스를 만들어야 합니다. 여기서는 클라이언트와 서버 간의 통신을 위해 6666 포트 번호를 사용하고 있습니다. 다른 포트 번호를 선택할 수도 있습니다. accept() 메서드는 클라이언트를 기다립니다. 클라이언트가 지정된 포트 번호와 연결하면 소켓 인스턴스가 반환됩니다. 3단계는 while 루프에서 인코딩됩니다. 클라이언트와 서버가 여전히 서로 할 말이 있는 한 서버는 클라이언트와 서버 간에 메시지를 주고보내면서 소켓을 읽고 씁니다. 일반적으로 서버는 네트워크의 특정 컴퓨터에서 실행되며 특정 포트 번호에 바인딩된 소켓이 있습니다. 이 경우 클라이언트와 동일한 컴퓨터를 사용하고 포트 6666에서 서버를 시작했습니다. KKMultiServer와 KKMultiServerThread의 두 클래스가 솔루션을 구성합니다. KKMultiServer는 서버 소켓에서 클라이언트 연결 요청을 수신 대기하여 영원히 반복됩니다. 요청이 들어오면 KKMultiServer는 연결을 수락하고, 처리하는 새 KKMultiServerThread 개체를 만들고, 수락에서 반환된 소켓을 건네주며, 스레드를 시작합니다.

그런 다음 서버가 연결 요청을 수신 대기로 돌아갑니다.