解决Java socket服务端返回了为什么客户端没有收到内容问题
一、整件事情的流程
首先我们来看一下Java Socket通信的一般流程:
步骤 | 客户端 | 服务端 |
---|---|---|
1 | 创建Socket对象,指定服务端IP和端口 | 创建ServerSocket对象,指定端口 |
2 | 连接服务端 | 监听客户端连接请求 |
3 | 发送数据 | 接收数据 |
4 | 接收数据 | 发送数据 |
5 | 关闭Socket | 关闭Socket |
二、每一步需要做什么
1. 客户端创建Socket对象,指定服务端IP和端口
// 创建Socket对象,指定服务端IP和端口
Socket socket = new Socket("服务端IP", 端口号);
2. 服务端创建ServerSocket对象,指定端口
// 创建ServerSocket对象,指定端口
ServerSocket serverSocket = new ServerSocket(端口号);
3. 客户端连接服务端并发送数据
// 获取输出流,向服务端发送数据
OutputStream os = socket.getOutputStream();
os.write("Hello, Server".getBytes());
4. 服务端接收客户端发送的数据并返回数据
// 接收客户端连接
Socket socket = serverSocket.accept();
// 获取输入流,读取客户端发送的数据
InputStream is = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = is.read(buffer);
String message = new String(buffer, 0, length);
// 返回数据给客户端
OutputStream os = socket.getOutputStream();
os.write("Hello, Client".getBytes());
5. 关闭Socket连接
// 关闭Socket连接
socket.close();
三、类图
classDiagram
class Client {
+ Socket socket
+ void connect()
+ void send()
+ void receive()
+ void close()
}
class Server {
+ ServerSocket serverSocket
+ void listen()
+ void accept()
+ void receive()
+ void send()
+ void close()
}
以上就是解决Java Socket服务端返回了为什么客户端没有收到内容问题的方法,通过以上步骤和代码,你可以成功实现客户端和服务端的通信。希望对你有帮助!