Vert.x从TCP的部分字节读取



我想创建一个TCP服务器,接受来自物联网设备的特定自定义协议。

在netty中,它给出了一个缓冲字节,您可以使用read方法来获得一些(4,8,16,n(字节。然后,操作将返回该字节并移动缓冲区索引。

如果当前缓冲的字节长度小于请求的长度,则它将等待下一个流,将其追加,然后操作再次开始。

在asyncio(python(中,read(n(具有类似的功能。

在vert.x中,是否有类似的方法来读取这样的缓冲字节??我知道你得到了Buffer对象。但是缓冲区索引似乎不会自动移动?它会等待下一个字节吗??

您需要使用一个记录解析器:

记录解析器允许您轻松解析协议由字节序列或固定大小的记录分隔。

为固定大小的记录创建记录解析器:

RecordParser.newFixed(4, h -> {
System.out.println(h.toString());
});

还可以创建记录解析器来使用ReadStream,就像TCP连接输入一样。

最新更新