1.【问】我在解析数据时,将数据转为16进制(或其他时)发现收到的包尾部有很长一段00(或者不知名数据)…. 请问这合理嘛?

2、常见使用问题 - 图1屏幕截图.png

【解决】

合理。。。。那是不可能的。发生这样的问题,很大可能是在转换数据的时候,直接转换了ByteBlock.Buffer的全部。这是不对的,ByteBlock.Buffer是整个内存块的核心,在RRQM中,ByteBlock.Buffer的长度往往是大于实际数据长度的。而实际数据长度,应当获取ByteBlock.Len(或ByteBlock.Length)。也就是说,ByteBlock.Len才是此次接收的真实数据,而非ByteBlock.Buffer.Length;

2.【问】我在发送,或接收数据时,发生以下异常,是什么原因?

image.png

【解决】

这个问题是由适配器限制引发的。原因是,RRQM内部限制了一次性发送的数据最大为1024102410byte。这个设置是安全设置,如果有大数据的发送需求,可以考虑其他方式(例如:分块,流式等)实现。但是如果确实要修改此内容。请按以下步骤。

服务器与客户端应该同样配置。

  1. .SetMaxPackageSize(1024*1024*10)

3.【问】客户端(TcpClient、WebSocketClient、HttpClient等)在一定时间内(约1分钟),如果没有数据交互的话,会自动断开?

【解决】

这个问题是由服务器的配置决定的。默认情况下,服务器会清理规定时间内的无数据客户端。具体配置看TCP配置项