2009-02-11 16 views
5

是否有人知道如何使用Java套接字接收(如何知道您已收到)帶外數據?特別是我讀過其中指出了sendUrgentDatasetOOBInline文檔:具有帶外數據的Java套接字

注意,只有有限的支持提供了處理傳入緊急數據。特別是,沒有提供傳入緊急數據的通知,並且除非由更高級協議提供,否則不能區分正常數據和緊急數據。

但我仍然希望有人有:-)

更多細節的解決方案:

我送序列化對象槽插口,我真的不看我怎麼能找到插入到流中的「隨機」OOB字節(除了當我嘗試反序列化對象時,Java會給我一個例外)。

+0

dupe of http://stackoverflow.com/questions/589928/socket-programming-how-do-i-handle-out-of-band-data – 2010-06-19 16:41:40

+0

@RomainHippeau另一個問題是一個普通的TCP問題,這一個是關於Java實現的。 – 2012-02-28 00:46:31

回答

2

Tomcat有一個JNI套接字的維護實現,它可以以OOB方式讀取緊急數據包。

2

它看起來像Java,直到Java 6(我沒有調查過Java 7,因爲我不知道他們是否已經確定將會進入或未進入)並且它看起來像Java不提供任何支持以帶外方式讀取緊急TCP信息。到目前爲止,看起來這是一個有意的選擇。

但是,我did找到一個用戶誰使用JNI,implemented his own解決方案,成功讀取流出緊急數據。這種破解非常古老,可能會或可能不適用於最近的JDK。我沒有嘗試過這個我自己!你的milage可能會有所不同。 :)但希望這會幫助你。