5

Java ソケットを使用して帯域外データを受信する方法 (受信したことを知る方法) を知っている人はいますか? 特に、sendUrgentDatasetOOBInlineのドキュメントを読みました。

着信緊急データの処理については、限られたサポートしか提供されないことに注意してください。特に、着信緊急データの通知は提供されず、より高いレベルのプロトコルによって提供されない限り、通常のデータと緊急データを区別する機能はありません。

しかし、私はまだ誰かが解決策を持っていることを望んでいます:-)

詳細:

ソケットを介してシリアル化されたオブジェクトを送信していますが、ストリームに挿入された「ランダムな」OOB バイトを見つける方法が実際にはわかりません (Java がオブジェクトを逆シリアル化しようとすると例外が発生するという事実を除いて)。物体)。

4

2 に答える 2

2

Java 6まではJavaのように見え(Java 7がどうなるかを確実に決定したかどうかわからないため、調査しませんでした)、Javaはサポートをまったく提供していないようです。帯域外方式で緊急TCP情報を読み取る。これまでのところ、これは意図的な選択のようです。

しかし、JNIを使​​用して独自のソリューションを実装し、ストリームから緊急データを正常に読み取るユーザーを1人見つけました。このハックは非常に古く、最近のJDKでは機能する場合と機能しない場合があります。私はこれを自分で試したことがありません!マイレージは異なる場合があります。:)しかし、うまくいけば、これはあなたを助けるでしょう。

于 2009-02-11T16:05:38.310 に答える
2

Tomcat には、OOB 方式で緊急のパケットを読み取ることができる JNI ソケットの実装が維持されています。

于 2009-11-03T00:04:46.840 に答える