用java怎么实现用原始socket实现B/S服务端
时间: 2024-05-13 08:19:44 浏览: 11
要使用原始socket实现B/S服务端,你需要使用ServerSocket类来创建服务器端套接字,并使用Socket类来接受客户端连接请求,然后通过输入输出流来进行通信。
以下是一个简单的Java程序,演示如何使用原始socket实现B/S服务端:
```java
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
Socket clientSocket = null;
try {
serverSocket = new ServerSocket(8080); // 创建服务器端套接字,监听端口8080
System.out.println("Server is running on port 8080...");
while (true) {
clientSocket = serverSocket.accept(); // 接受客户端连接请求,返回一个客户端套接字
System.out.println("Client connected: " + clientSocket.getInetAddress().getHostName());
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); // 输入流
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); // 输出流
String inputLine;
while ((inputLine = in.readLine()) != null) { // 循环读取客户端发送的消息
System.out.println("Client says: " + inputLine);
out.println("Server says: " + inputLine.toUpperCase()); // 将消息转换为大写并回复客户端
}
}
} catch (IOException e) {
System.err.println("Could not listen on port 8080.");
System.exit(-1);
} finally {
if (clientSocket != null) {
clientSocket.close();
}
if (serverSocket != null) {
serverSocket.close();
}
}
}
}
```
这个程序会创建一个服务器端套接字,然后监听端口8080。当有客户端连接时,会输出客户端的主机名,并创建一个输入流和输出流。服务器会循环读取客户端发送的消息,并将消息转换为大写形式回复客户端。
要测试这个程序,可以在控制台输入命令`telnet localhost 8080`,然后输入一些消息。你应该可以在控制台看到服务器端输出的消息。