在Java中,使用Socket和ServerSocket类可以实现客户端与服务器之间的通信。以下是一个简单的示例,展示了如何使用Socket和ServerSocket实现客户端和服务端的通信。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
int port = 12345; // 服务器监听的端口
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket socket = serverSocket.accept(); // 接受客户端连接
System.out.println("客户端已连接");
BufferedReader inputReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter outputWriter = new PrintWriter(socket.getOutputStream(), true);
String message;
while ((message = inputReader.readLine()) != null) {
System.out.println("收到客户端消息: " + message);
outputWriter.println("服务器回复: " + message);
}
socket.close();
System.out.println("客户端断开连接");
}
} catch (IOException e) {
System.out.println("服务器异常: " + e.getMessage());
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
String host = "localhost"; // 服务器地址
int port = 12345; // 服务器监听的端口
try (Socket socket = new Socket(host, port)) {
System.out.println("已连接到服务器");
BufferedReader inputReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter outputWriter = new PrintWriter(socket.getOutputStream(), true);
BufferedReader keyboardReader = new BufferedReader(new InputStreamReader(System.in));
String message;
while ((message = keyboardReader.readLine()) != null) {
outputWriter.println(message); // 向服务器发送消息
System.out.println("服务器回复: " + inputReader.readLine());
}
} catch (IOException e) {
System.out.println("客户端异常: " + e.getMessage());
}
}
}
这个示例展示了如何使用Socket和ServerSocket实现基本的客户端和服务端通信。在实际应用中,可以根据需要扩展功能,例如多线程处理多个客户端连接、使用更高级的协议等。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。