用Bio 实现 java的客户端服务端
时间: 2023-11-08 17:04:13 浏览: 112
您可以使用 Java 的 Socket 编程实现客户端和服务端的通信,以实现基本的客户端-服务端模型。以下是一个简单的示例:
服务端代码:
```java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888); // 创建 ServerSocket
System.out.println("Server started");
while (true) { // 开启循环,等待客户端连接
Socket socket = serverSocket.accept(); // 监听客户端连接
System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());
new ServerThread(socket).start(); // 创建一个新线程处理客户端请求
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ServerThread extends Thread {
private Socket socket;
public ServerThread(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
// 处理客户端请求,可以使用 socket.getInputStream() 和 socket.getOutputStream() 读写数据
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close(); // 关闭 socket
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
客户端代码:
```java
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888); // 创建 Socket,连接到服务端
System.out.println("Connected to server");
// 可以使用 socket.getInputStream() 和 socket.getOutputStream() 读写数据
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这是一个简单的示例,您可以根据您的需求进行修改和扩展。
阅读全文