java socket服务端持续监听
时间: 2023-07-09 22:32:30 浏览: 107
要实现Java Socket服务端的持续监听,可以通过使用一个while循环来实现。具体的实现步骤如下:
1. 创建ServerSocket对象,指定监听的端口号。
2. 在while循环中,使用accept()方法等待客户端的连接,该方法会一直阻塞直到有客户端连接成功。
3. 一旦客户端连接成功,就可以通过Socket对象获取到输入流和输出流,可以进行数据的读写操作。
4. 当客户端完成数据传输后,要记得关闭相应的Socket对象和输入输出流。
下面是示例代码:
```
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
// 进行数据读写操作
// ...
socket.close();
}
```
相关问题
Java socket 实现服务端监听两个端口
可以回答这个问题。Java socket 可以通过创建多个 ServerSocket 对象来监听多个端口,每个 ServerSocket 对象绑定一个端口号。在服务端,可以使用多线程来处理多个客户端的连接请求。具体实现可以参考 Java 官方文档或者相关的教程。
java socket服务端 演示代码
以下是一个简单的 Java Socket 服务端演示代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8888);
} catch (IOException e) {
System.err.println("Could not listen on port: 8888.");
System.exit(1);
}
Socket clientSocket = null;
try {
System.out.println("Waiting for connection...");
clientSocket = serverSocket.accept();
System.out.println("Connection established with " + clientSocket.getInetAddress().getHostName());
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine, outputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received message: " + inputLine);
outputLine = "Server received: " + inputLine;
out.println(outputLine);
if (outputLine.equals("Bye."))
break;
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
这个代码创建了一个 ServerSocket 对象,监听端口号为 8888。当客户端连接到这个端口时,它会接受连接并创建一个 Socket 对象。然后,它会创建一个 PrintWriter 对象和一个 BufferedReader 对象,用于向客户端发送和接收消息。在一个循环中,它会读取客户端发送的消息,并将其打印到控制台上。然后,它会将一个响应消息发送回客户端。如果客户端发送了 "Bye." 消息,它会退出循环并关闭连接。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)