アプリケーション層コード (チャネル パイプラインのハンドラー) に、受信したバッファーに URGent フラグ + ポインターが設定された TCP セグメントが含まれている (つまり、1 バイトの OOB データが送信された) ことを通知する API メソッド/フラグ/シグナル/イベントはありますか? ?
デバッガーで確認できる限り、SO_OOBINLINE
オプションは基になるソケットに設定されていません (コードが設定されていないことはわかっています。デフォルトでは false ですが、とにかくライブシステムで再確認しました)。それでも、URGent バイトはあたかもプロトコル パケットの一部であるかのように私のコードに配信されますが、予想通り、これはプロトコル デコード ロジック (パケット長部分) を台無しにします。
そのようなトラフィックを処理する方法についての指針はありますか? (プロトコルも、この OOB/URGent データを送信する特定のアップグレードされたクライアント バージョンも制御できません)。
現在、私が実装しなければならないかもしれない醜い解決策は、送信される特定のバイトのハードコードされた値に依存する特別な処理を追加することです。パケット長が異常に長くなるので、 から拡張したクラスで確認できLengthFieldBasedFrameDecoder
ます。