Java 네트워크 프로그래밍에서 서버와 클라이언트는 클라이언트-서버 모델을 통해 통신하며 다음 단계를 따릅니다. 서버 만들기: ServerSocket을 사용하여 포트에서 수신 대기하고 클라이언트가 연결될 때까지 기다립니다. 클라이언트 요청 처리: 연결을 수락하고 클라이언트에서 데이터를 읽고, 요청을 처리하고 응답을 반환하고, 마지막으로 클라이언트 소켓을 닫습니다. 클라이언트 생성: 소켓 연결을 설정하고, 서버에 요청을 보내고, 응답을 읽고, 소켓을 닫습니다.
Java 네트워크 프로그래밍: 서버 측 및 클라이언트 통신
Java 네트워크 프로그래밍에서 서버 측과 클라이언트 간의 통신은 클라이언트-서버 모델을 따릅니다. 이 기사에서는 서버 측과 클라이언트 측이 소켓을 통해 연결을 설정하고 데이터를 교환하는 방법을 살펴보겠습니다.
서버 측 만들기
서버 측은 클라이언트 연결을 수신하고 클라이언트의 요청을 처리하는 역할을 담당합니다. 서버 측을 생성하려면 다음 단계를 사용할 수 있습니다.
import java.net.*; import java.io.*; public class Server { public static void main(String[] args) throws IOException { // 创建一个服务器套接字,监听端口 8080 ServerSocket serverSocket = new ServerSocket(8080); // 循环等待客户端连接 while (true) { // 接受客户端连接并返回一个套接字 Socket clientSocket = serverSocket.accept(); // 处理客户端请求 handleClientRequest(clientSocket); // 关闭客户端套接字 clientSocket.close(); } // 关闭服务器套接字 serverSocket.close(); } public static void handleClientRequest(Socket clientSocket) throws IOException { // 从输入流读取客户端数据 InputStream inputStream = clientSocket.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String request = reader.readLine(); // 处理请求并返回响应 String response = processRequest(request); // 向输出流写入响应 OutputStream outputStream = clientSocket.getOutputStream(); PrintWriter writer = new PrintWriter(outputStream); writer.println(response); } }
클라이언트 생성
클라이언트는 서버 측에 연결하고 요청을 보내는 일을 담당합니다. 클라이언트를 생성하려면 다음 단계를 사용합니다.
import java.net.*; import java.io.*; public class Client { public static void main(String[] args) throws IOException { // 创建一个客户端套接字并连接到服务器端(主机名:localhost,端口:8080) Socket clientSocket = new Socket("localhost", 8080); // 向服务器端发送请求 OutputStream outputStream = clientSocket.getOutputStream(); PrintWriter writer = new PrintWriter(outputStream); writer.println("Hello from client!"); // 从服务器端读取响应 InputStream inputStream = clientSocket.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String response = reader.readLine(); System.out.println("Response from server: " + response); // 关闭客户端套接字 clientSocket.close(); } }
실용 사례
다음은 Java 네트워크 프로그래밍을 사용하여 서버 측과 클라이언트 간 통신을 수행하는 방법을 보여주는 실제 사례입니다.
서버 측 코드 :
// Server.java import java.net.*; import java.io.*; public class Server { public static void main(String[] args) throws IOException { // 监听端口 8080 ServerSocket serverSocket = new ServerSocket(8080); // 等待客户端连接 Socket clientSocket = serverSocket.accept(); // 读取客户端数据 BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String request = reader.readLine(); System.out.println("Received request: " + request); // 响应客户端请求 PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); writer.println("Hello from server!"); writer.flush(); // 关闭套接字 clientSocket.close(); serverSocket.close(); } }
클라이언트 코드:
// Client.java import java.net.*; import java.io.*; public class Client { public static void main(String[] args) throws IOException { // 连接到服务器端(主机名:localhost,端口:8080) Socket clientSocket = new Socket("localhost", 8080); // 向服务器端发送数据 PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); writer.println("Hello from client!"); writer.flush(); // 读取服务器端响应 BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String response = reader.readLine(); System.out.println("Received response: " + response); // 关闭套接字 clientSocket.close(); } }
이 코드를 실행하면 서버 측은 포트 8080에서 연결을 수신하고 클라이언트는 서버 측에 연결하여 "Hello from client!" 메시지를 보냅니다. 서버는 메시지를 수신하고 "Hello from server!"로 응답합니다.
위 내용은 Java 네트워크 프로그래밍은 서버와 클라이언트 간에 어떻게 통신합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!