我想创建一个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连接输入一样。