使用Java提供的Socket,建立客户端和服务器,编写程序,实现两者相互通信。
时间: 2024-04-09 22:27:36 浏览: 49
可以的,下面是一个简单的示例代码,实现了Java Socket的客户端和服务器之间的通信:
```java
// 服务器端
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,指定端口号
ServerSocket serverSocket = new ServerSocket(8888);
// 监听客户端的连接请求
System.out.println("等待客户端连接...");
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接!");
// 获取输入流和输出流
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
// 读取客户端发送的消息,并向客户端发送响应消息
String clientMessage;
while ((clientMessage = in.readLine()) != null) {
System.out.println("客户端消息:" + clientMessage);
out.println("已收到消息:" + clientMessage);
}
// 关闭连接
in.close();
out.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
```java
// 客户端
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器IP地址和端口号
Socket socket = new Socket("localhost", 8888);
// 获取输入流和输出流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 向服务器发送消息,并读取服务器的响应消息
String serverMessage;
out.println("Hello Server!");
serverMessage = in.readLine();
System.out.println("服务器响应:" + serverMessage);
// 关闭连接
in.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码实现了一个简单的客户端和服务器之间的通信。启动服务器端后,它会监听客户端的连接请求,当客户端连接成功后,服务器会读取客户端发送的消息,并向客户端发送响应消息。客户端启动后,它会向服务器发送一条消息,并读取服务器的响应。
注意:以上代码只是一个简单示例,实际应用中可能需要更复杂的逻辑来处理客户端和服务器之间的通信。