利用java 服务器开启端口,监听客户端请求,根据客户端上送的编号,将对应的内容返回客户端
时间: 2023-09-27 11:05:32 浏览: 61
Java可以监听客户端的请求、服务端的操作等。
3星 · 编辑精心推荐
好的,下面是一个简单的示例代码:
```java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
// 定义服务器监听的端口号
private static final int PORT = 8888;
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream inputStream = null;
OutputStream outputStream = null;
try {
// 创建ServerSocket对象,监听指定端口号
serverSocket = new ServerSocket(PORT);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
// 等待客户端连接,阻塞式方法
socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress());
// 获取输入输出流
inputStream = socket.getInputStream();
outputStream = socket.getOutputStream();
// 读取客户端发送的编号
byte[] data = new byte[1024];
int len = inputStream.read(data);
String code = new String(data, 0, len);
System.out.println("客户端请求编号为:" + code);
// 根据编号返回对应内容
String content = "";
switch (code) {
case "001":
content = "编号001对应的内容";
break;
case "002":
content = "编号002对应的内容";
break;
default:
content = "未知编号";
break;
}
// 将内容返回给客户端
outputStream.write(content.getBytes());
System.out.println("已返回内容:" + content);
// 关闭连接
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (outputStream != null) {
outputStream.close();
}
if (inputStream != null) {
inputStream.close();
}
if (socket != null) {
socket.close();
}
if (serverSocket != null) {
serverSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
以上代码实现了一个简单的服务器监听指定端口号,等待客户端连接。客户端连接成功后,读取客户端发送的编号,根据编号返回对应的内容给客户端。你可以在switch语句中根据需要添加更多的编号和内容。
阅读全文