当然,我可以为你提供一个简单的Java Socket网络编程示例,包括服务器端和客户端的基本实现。
### 服务器端代码
服务器端需要创建一个`ServerSocket`来监听指定端口上的连接请求,并接受来自客户端的连接。一旦接受到连接,它会创建一个新的线程来处理客户端的通信。
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
int port = 12345; // 服务器端口号
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("服务器启动,监听端口:" + port);
while (true) {
Socket socket = serverSocket.accept(); // 接受客户端连接
new Thread(() -> handleClient(socket)).start(); // 创建新线程处理连接
}
}
}
private static void handleClient(Socket socket) {
try (BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("客户端: " + inputLine);
out.println("服务器: 已收到你的消息");
if ("exit".equalsIgnoreCase(inputLine)) {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
### 客户端代码
客户端需要创建一个`Socket`来连接到服务器指定的IP地址和端口。一旦连接成功,客户端就可以向服务器发送消息并接收来自服务器的响应。
import java.io.*;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
String hostname = "localhost"; // 服务器地址
int port = 12345; // 服务器端口号
try (Socket socket = new Socket(hostname, port);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
System.out.println("输入消息(输入exit退出):");
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
if ("exit".equalsIgnoreCase(userInput)) {
break;
}
System.out.println("服务器响应: " + in.readLine());
}
}
}
}
这段代码提供了一个基础的Socket网络编程示例。服务器端监听指定端口,等待客户端连接,并创建一个新线程来处理每个连接。客户端连接到服务器,发送消息并接收服务器的响应。你可以根据具体需求对这个示例进行修改和扩展。