使用Java Socket 和 ServerSocket 实现客户端服务端网络通信。 java代码实现
时间: 2024-05-08 18:18:15 浏览: 165
好的,这是一个关于网络编程的技术问题,我可以回答。
Java Socket 和 ServerSocket 可以用于实现客户端服务端的网络通信。具体实现步骤如下:
1. 服务端创建 ServerSocket 对象,并指定一个端口号。用于监听客户端的连接请求。
2. 客户端创建 Socket 对象,并指定服务端的 IP 地址和端口号。用于发起连接请求。
3. 服务端使用 accept() 方法接收客户端连接并返回 Socket 对象。可以在循环中一直等待客户端的连接请求。
4. 服务端和客户端通过 InputStream 和 OutputStream 进行数据的读写。
下面是 Java 代码示例:
服务端代码:
```
try {
// 创建 ServerSocket 对象
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
System.out.println("等待客户端连接...");
// 监听客户端的连接请求
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostName());
// 读取客户端发送过来的数据
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println("客户端发送的数据:" + line);
}
// 向客户端发送数据
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream, true);
printWriter.println("Hello, Client!");
// 关闭资源
bufferedReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
```
客户端代码:
```
try {
// 创建 Socket 对象
Socket socket = new Socket("192.168.0.1", 8888);
// 向服务端发送数据
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream, true);
printWriter.println("Hello, Server!");
// 读取服务端发送过来的数据
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println("服务端发送的数据:" + line);
}
// 关闭资源
bufferedReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
```
以上便是使用 Java Socket 和 ServerSocket 实现客户端服务端网络通信的代码示例。
阅读全文