用java写一个TCP的服务器端
时间: 2024-01-02 12:03:05 浏览: 30
以下是一个简单的 Java TCP 服务器端示例代码:
```java
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8888); // 创建服务器端 Socket,绑定端口号 8888
System.out.println("Server started, listening on port 8888...");
while (true) {
Socket clientSocket = serverSocket.accept(); // 监听客户端连接请求
System.out.println("Accepted connection from " + clientSocket.getInetAddress());
// 为每个客户端连接创建一个线程
new Thread(() -> {
try (BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true)) {
String line;
while ((line = in.readLine()) != null) { // 不断读取客户端发来的数据
System.out.println("Received: " + line);
out.println("Server: " + line); // 发送响应数据给客户端
}
} catch (Exception e) {
System.err.println("Exception caught: " + e);
} finally {
try {
clientSocket.close(); // 关闭客户端 Socket
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
}
```
这个服务器端会监听端口号为 8888 的连接请求,并为每个客户端连接创建一个新线程,通过输入流读取客户端发来的数据,然后通过输出流发送响应数据给客户端。注意,这里为了简化代码,省略了异常处理和线程池等优化,实际应用中需要根据具体需求进行适当修改和优化。