服务器需要创建一个ServerSocket对象来监听来自客户端的连接请求,并使用accept()方法接受连接。一旦连接被接受,服务器就可以与客户端进行通信了。
下面是示例代码
(服务器)
import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws IOException { int port = 8080; // 监听的端口 ServerSocket serverSocket = new ServerSocket(port); System.out.println("Server is listening on port " + port); // 等待客户端连接 Socket clientSocket = serverSocket.accept(); System.out.println("Client connected."); // 获取输入和输出流 BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); // 读取并响应客户端的消息 String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("Received from client: " + inputLine); out.println("Echo from server: " + inputLine); } // 关闭连接 in.close(); out.close(); clientSocket.close(); serverSocket.close(); } }
(客户端)
import java.io.*; import java.net.Socket; public class Client { public static void main(String[] args) throws IOException { String host = "localhost"; // 服务器的地址 int port = 8080; // 服务器的端口 Socket socket = new Socket(host, port); System.out.println("Connected to server."); // 获取输入和输出流 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // 发送消息给服务器 out.println("Hello from client!"); // 读取服务器的响应 String response = in.readLine(); System.out.println("Server response: " + response); // 关闭连接 in.close(); out.close(); socket.close(); } }