2011-05-07 168 views
2

我有一個程序連接到服務器,並通過輸入和輸出數據流發送/接收數據。 我想調試它,看看是否正在傳遞的消息是正確的,所以我必須讀取通過流發送什麼,但連接有1秒超時。 (在服務器端,我不能控制) 有沒有辦法聽流,所以我可以從它的數據到控制檯,並有數據仍然被髮送?Java:「聆聽」DataStream

public void foo(DataInputStream in, DataOutputStream out){ 
    //Some code to make the console write whatever is sent in the out stream 
    //And received in the in stream. 

    out.writeUTF("SOME TEXT"); 
    String s = in.readUTF(); 
} 

回答

3

Jakarta Commons IO會幫到你。在創建DataInputStream的地方,插入寫入ByteArrayOutputStreamTeeInputStream。然後,您可以在閒暇時檢查該字節數組。

+0

Drats!打我吧:)。得到第二個:TeeInputStream是這樣的任務的道路,真相和光芒。 – Femi 2011-05-07 15:20:36

+0

不幸的是我不得不使用DataInputStream(和output)類,所以我不能使用任何不能擴展它的東西。 – Benny 2011-05-07 15:50:03

+0

@Benny - 'TeeInputStream'是一個裝飾器:無論你創建DataInputStream,你都會這樣做。但是,作爲構建鏈的一部分,您可以插入'TeeInputStream'。 – Anon 2011-05-07 15:55:55