0comments

socket 통신 예제

listenSocket 메서드는 먼저 서버 프로그램이 클라이언트 연결 요청을 수신 대기하는 컴퓨터 이름(kq6py) 및 포트 번호(4321)가 있는 Socket 개체를 만듭니다. 그런 다음 Server 프로그램에 소켓 연결을 통해 데이터를 전송하는 PrintWriter 개체를 만듭니다. 또한 BufferedReader 개체를 만들어 서버에서 클라이언트로 다시 보낸 텍스트를 읽습니다. 이 예제에서는 호스트 인수에 대한 빈 문자열을 전달하여 모든 인터페이스에서 수신 대기할 수 있도록 서버를 실행합니다. 이렇게하면 클라이언트를 실행하고 다른 네트워크에있는 가상 컴퓨터에서 연결할 수 있습니다. 그것은 큰 엔디안 PowerPC 기계를 에뮬레이트합니다. 이제 SocketClientExample 클래스를 실행하면 자바 소켓 서버에 요청을 보내고 콘솔에 응답 메시지를 인쇄합니다. 소켓 및 ServerSocket 클래스는 연결 지향 소켓 프로그래밍에 사용되며 DatagramSocket 및 DatagramPacket 클래스는 연결 없는 소켓 프로그래밍에 사용됩니다. finalize() 메서드는 프로그램이 종료되기 전에 Java 가상 시스템(JVM)*에 의해 호출되어 프로그램이 리소스를 정리하고 릴리스할 수 있는 기회를 제공합니다.

다중 스레드 프로그램은 리소스 부족에 직면하지 않도록 종료하기 전에 사용하는 모든 파일 및 소켓을 닫아야 합니다. finalize() 메서드에서 server.close()에 대한 호출은 이 프로그램의 각 스레드에서 사용하는 소켓 연결을 닫습니다. 서버-클라이언트 통신의 자바 소켓 프로그래밍을 테스트하려면 먼저 SocketServerExample 클래스를 실행해야 합니다. 소켓 서버를 실행하면 “클라이언트 요청 대기 중”을 인쇄한 다음 클라이언트 요청을 기다립니다. 클라이언트와 서버와 관련된 가장 기본적인 예제로 손을 더럽게 해 보겠습니다. 클라이언트가 서버를 맞이하고 서버가 응답하는 양방향 통신 응용 프로그램이 될 것입니다. 서버 응용 프로그램을 만들려면 ServerSocket 클래스의 인스턴스를 만들어야 합니다. 여기서는 클라이언트와 서버 간의 통신을 위해 6666 포트 번호를 사용하고 있습니다.

다른 포트 번호를 선택할 수도 있습니다. accept() 메서드는 클라이언트를 기다립니다. 클라이언트가 지정된 포트 번호와 연결하면 소켓 인스턴스가 반환됩니다. contrib 패키지는 소켓을 만들고 메시지를 보내고 받기 위한 기본 을 제공하는 모듈 Network.Socket을 제공합니다. 여기에는 다음 기능이 포함됩니다: 둘 사이의 주요 차이점은 UDP가 연결되지 않는다는 것입니다. 클라이언트와 서버 간에 통신이 수행될 수 있도록 합니다. 다음 섹션에서는 이러한 문제를 해결하는 서버 및 클라이언트의 예를 살펴보겠습니다. select()를 사용하여 여러 연결을 동시에 처리하고 필요에 따라 send() 및 recv()를 호출합니다. 여기서는 단방향 클라이언트 및 서버 통신을 만들 것입니다.

Comments are closed.