有人知道如何使用Java套接字接收(如何知道您收到的)带外数据?我特别阅读了sendUrgentData和setOOBInline的文档,其中包含:
请注意,仅提供有限的支持来处理传入的紧急数据。特别是,没有提供传入紧急数据的通知,除非由更高级别的协议提供,否则无法区分正常数据和紧急数据。
但我仍然希望有人有解决方案: - )
更多详情:
我正在通过套接字发送序列化对象,我真的没有看到如何在流中找到插入“随机”OOB字节(除了Java在我尝试时会给我一个例外的事实反序列化对象)。
答案 0 :(得分:2)
它看起来像Java,直到Java 6(我没有调查Java 7,因为我不知道他们是否已确定将要进行的内容)并且看起来Java不提供任何支持用于以带外方式读取紧急TCP信息。到目前为止看起来这是一个慎重的选择。
但是,我确实找到一个使用JNI的implemented his own解决方案的用户,成功地从流中读取紧急数据。这个hack很老,可能会或可能不会在最近的JDK上运行。我自己没试过!你的milage可能会有所不同。 :)但希望这会对你有帮助。
答案 1 :(得分:2)
Tomcat维护了JNI套接字的实现,它可以以OOB方式读取紧急数据包。