springboot中的smart-socket中的AioQuickClient 获取服务端发送的数据
时间: 2024-05-15 16:13:25 浏览: 4
在Smart-Socket中,AioQuickClient是一个异步的TCP客户端,可以通过以下方式获取服务端发送的数据:
1.实现AioQuickClient的AioListener接口,并重写onAfterReceivedBytes方法,在该方法中获取服务端发送的数据。
例如:
```java
public class MyAioListener implements AioListener<byte[]> {
@Override
public void onAfterConnected(ChannelContext<byte[]> channelContext, boolean isConnected, boolean isReconnect) throws Exception {
// 连接成功后的操作
}
@Override
public void onAfterSent(ChannelContext<byte[]> channelContext, IoPacket packet, boolean isSentSuccess) throws Exception {
// 数据发送完成后的操作
}
@Override
public void onAfterReceivedBytes(ChannelContext<byte[]> channelContext, byte[] bytes, int length) throws Exception {
// 获取服务端发送的数据
String receivedData = new String(bytes, 0, length, "UTF-8");
System.out.println("接收到服务端发送的数据:" + receivedData);
}
@Override
public void onAfterClose(ChannelContext<byte[]> channelContext, Throwable throwable, String remark, boolean isRemove) throws Exception {
// 关闭连接后的操作
}
}
```
2.在创建AioQuickClient时,将实现了AioListener接口的类传入构造器中。
例如:
```java
public static void main(String[] args) throws Exception {
// 创建AioQuickClient
AioQuickClient aioQuickClient = new AioQuickClient("127.0.0.1", 8888, new MyAioListener());
aioQuickClient.start();
// 发送数据
aioQuickClient.send("Hello, server!");
}
```
以上代码中,创建了一个AioQuickClient,并将实现了AioListener接口的MyAioListener类传入构造器中。在MyAioListener类的onAfterReceivedBytes方法中获取服务端发送的数据。
注意:Smart-Socket中的AioQuickClient是一个异步的TCP客户端,因此在获取服务端发送的数据时,需要使用回调函数的方式,而不是阻塞式的方式。