是否有任何 API 方法/标志/信号/事件会通知应用层代码(通道管道中的处理程序)接收到的缓冲区包含一个带有 URGent 标志+指针集的 TCP 段(即发送了一个单字节的 OOB 数据) ?
据我所知,调试器SO_OOBINLINE
选项没有在底层套接字上设置(我知道我的代码没有设置它,默认情况下它是错误的,但我还是在实时系统上仔细检查了)。尽管 URGent 字节被传递到我的代码中,就好像它是协议数据包的一部分一样,并且可以预料,这会弄乱协议解码逻辑(数据包长度的一部分)。
有关如何处理此类流量的任何指示?(我无法控制协议,也无法控制发送此 OOB/URGent 数据的特定升级客户端版本)。
目前,我可能不得不实施的丑陋解决方案是添加特殊处理,该处理取决于要发送的特定字节的硬编码值。由于它使数据包长度异常长,我可以在我扩展的类中检查它LengthFieldBasedFrameDecoder
。