import java.io.*;
import java.net.*;
public class EchoServer {
public static void main(String[] args) throws IOException {
// 创建一个服务器套接字,监听端口 8080
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("服务器已启动,等待客户端连接...");
try {
while (true) {
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接");
// 获取输入输出流
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
// 读取客户端发送的数据并回显
while ((inputLine = in.readLine()) != null) {
if ("bye".equals(inputLine)) {
out.println("Goodbye!");
break;
}
System.out.println("收到客户端消息: " + inputLine);
out.println("Echo: " + inputLine);
}
// 关闭连接
System.out.println("关闭客户端连接");
in.close();
out.close();
clientSocket.close();
}
} finally {
// 关闭服务器套接字
serverSocket.close();
}
}
}
ServerSocket serverSocket = new ServerSocket(8080); 这行代码创建了一个服务器套接字,并让它在端口 8080 上监听客户端连接。Socket clientSocket = serverSocket.accept(); 这行代码会阻塞,直到有一个客户端连接到服务器。一旦有客户端连接,它会返回一个 Socket 对象来表示这个连接。clientSocket.getInputStream() 和 clientSocket.getOutputStream() 分别获取客户端的输入和输出流。BufferedReader 读取客户端发送的数据,并通过 PrintWriter 将数据回显给客户端。这段代码实现了一个简单的回显服务器(Echo Server),它会将客户端发送的消息原样返回给客户端。
上一篇:java字符串压缩
下一篇:java 读取配置文件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站