用java代码写tcp服务端多线程处理多个socket
时间: 2023-10-02 20:06:25 浏览: 43
连接的步骤是什么?
首先,你需要创建一个ServerSocket对象并指定端口号。然后,在无限循环中,等待客户端连接请求。一旦有连接请求,就创建一个新的Socket对象来处理连接,并将Socket传递给一个新的线程来处理。在线程中,你可以使用Socket对象中的输入和输出流来进行通信。最后,关闭Socket和ServerSocket对象,释放资源。以下是Java代码示例:
```
import java.net.*;
import java.io.*;
public class MultiThreadedServer implements Runnable {
private Socket clientSocket;
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8080);
System.out.println("Server started.");
while (true) {
System.out.println("Waiting for a client ...");
Socket socket = serverSocket.accept();
System.out.println("Client accepted");
new Thread(new MultiThreadedServer(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (serverSocket != null) {
serverSocket.close();
}
}
}
public MultiThreadedServer(Socket socket) {
this.clientSocket = socket;
}
public void run() {
try {
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received message: " + inputLine);
out.println(inputLine);
}
in.close();
out.close();
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```