服务器端代码
import java.net.*;
import java.io.*;
public class Server {
private static final int PORT = 8080;
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(PORT);
System.out.println("Listening on port " + PORT);
Socket clientSocket = serverSocket.accept();
System.out.println("Accepted new connection from " + clientSocket.getInetAddress());
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 message: " + inputLine);
out.println("Hello from server");
System.out.println("Sent response to client");
}
in.close();
out.close();
clientSocket.close();
serverSocket.close();
}
}
客户端代码
import java.net.*;
import java.io.*;
public class Client {
private static final String SERVER_ADDRESS = "localhost";
private static final int PORT = 8080;
public static void main(String[] args) throws IOException {
Socket socket = new Socket(SERVER_ADDRESS, PORT);
System.out.println("Connected to server");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message = "Hello from client";
out.println(message);
System.out.println("Sent message to server");
String response = in.readLine();
System.out.println("Received response from server: " + response);
in.close();
out.close();
socket.close();
}
}
请注意,以上示例代码仅用于演示 Socket 编程的基本原理,实际生产环境中应该考虑更多的异常处理和安全问题。