以下代码实现了一个简单的自动回复服务器,它监听8888端口,当客户端连接时,启动一个新线程处理客户端的请求。处理器会读取客户端的输入流,自动回复客户端的消息,并将回复发送给客户端的输出流。当客户端连接断开时,关闭客户端连接。 这个自动回复服务器可以用于调试网络应用程序,例如客户端和服务器之间的通信,以及测试网络应用程序的稳定性和可靠性等。由于该服务器是一个简单的示例,实际应用中需要根据需求进行修改和优化。
在Java中实现自动回复功能需要使用Socket编程和多线程编程技术。以下是一个简单的示例:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class AutoReplyServer { public static void main(String[] args) { try { // 创建ServerSocket对象 ServerSocket server = new ServerSocket(8888); while (true) { // 等待客户端连接 Socket client = server.accept(); // 启动新线程处理客户端请求 new Thread(new AutoReplyHandler(client)).start(); } } catch (Exception e) { e.printStackTrace(); } } // 自动回复处理器 static class AutoReplyHandler implements Runnable { private Socket client; public AutoReplyHandler(Socket client) { this.client = client; } @Override public void run() { try { // 获取输入输出流 BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); PrintWriter out = new PrintWriter(client.getOutputStream(), true); String line; while ((line = in.readLine()) != null) { System.out.println("Client: " + line); // 自动回复 String reply = "You said: " + line; System.out.println("Server: " + reply); out.println(reply); } // 关闭客户端连接 client.close(); } catch (Exception e) { e.printStackTrace(); } } } }
评论