java实现客户机服务器之间的通信功能,利用socket
时间: 2024-12-06 17:25:24 浏览: 6
在Java中,通过Socket编程可以实现客户端和服务器之间的通信。下面是一个简单的概述:
1. **服务器端**(Server):
- 创建一个ServerSocket对象,指定监听的端口。
- ServerSocket进入被动接受模式,等待客户端连接。
- 当客户端连接时,创建一个新的Socket对象并绑定到该连接。
- 读取和发送数据:通过Socket对象的getInputStream()和OutputStream进行双向数据交换。
```java
ServerSocket server = new ServerSocket(port);
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
// 读取客户端数据
String message = in.readLine();
// 发送响应
out.println("Message received from client: " + message);
// 关闭连接
client.close();
server.close();
```
2. **客户端**(Client):
- 创建一个Socket对象,指定目标服务器的IP地址和端口号。
- 使用Socket的connect()方法连接到服务器。
- 写入数据:同样使用OutputStream。
- 读取数据:通过BufferedReader从Socket获取输入流。
```java
Socket socket = new Socket(serverIp, serverPort);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 发送请求
out.println("Hello, Server!");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response = in.readLine();
// 打印响应
System.out.println("Response from server: " + response);
// 关闭连接
in.close();
out.close();
socket.close();
```
阅读全文