5

有人知道如何使用 Java 套接字接收(如何知道您收到)带外数据吗?特别是我已经阅读了sendUrgentDatasetOOBInline的文档,其中指出:

请注意,仅提供有限的支持来处理传入的紧急数据。特别是,不提供传入紧急数据的通知,并且没有能力区分正常数据和紧急数据,除非由更高级别的协议提供。

但我仍然希望有人有解决方案:-)

更多细节:

我正在通过套接字发送序列化对象,但我并没有真正看到如何在流中找到插入的“随机”OOB字节(除了当我尝试反序列化时Java会给我一个异常的事实目的)。

4

2 回答 2

2

它看起来像 Java,一直到 Java 6(我没有研究 Java 7,因为我不知道他们是否已经确定要使用什么)而且看起来 Java 根本不提供任何支持以带外方式读取紧急 TCP 信息。到目前为止,看起来这是一个深思熟虑的选择。

但是,我确实找到了一位用户,他使用 JNI实现了自己的解决方案,成功地从流中读取了紧急数据。这个 hack 非常古老,可能适用于最近的 JDK,也可能不适用。我自己没有试过这个!您的里程可能会有所不同。:) 但希望这会对你有所帮助。

于 2009-02-11T16:05:38.310 回答
2

Tomcat 有一个维护的 JNI 套接字实现,它可以以 OOB 方式读取紧急数据包。

于 2009-11-03T00:04:46.840 回答