2013-01-08 34 views
0

假設我有一個服務器上的Java代碼:重定向的InputStream Socket's的OutputStream

Socket aSocket = new Socket(aInetaddr, aPort); //aSocket is a client i m connecting to 
InputStream input = aSocket.getInputStream(); 
Socket bSocket = new Socket(bInetaddr, bPort); //bSocket is a client i m connectin to 

現在我想實現的是,從aSocketInputStream「輸入」傳遞給bSocket。我沒有關於InputStream的最新消息,或最終如何使用它的信息。

整個數據傳輸必須通過我的服務器,我不能直接連接2個客戶端。

回答

2

獲取第二個插槽的輸出流,然後您可以使用Apache Commons IOUtils.copy()輕鬆地完成此操作。在許多變體中,有一個將輸入和輸出流作爲參數。

+0

Thx很多,看起來就像我在找什麼。我是否必須調用類似flush()的函數,或者調用copy()來完成整個工作?這會阻止我的代碼,直到整個InputStream被傳輸? – user1958067

+0

它會阻塞直到複製的流被關閉。您可以啓動另一個線程或將任務添加到線程池以避免阻塞當前線程。 –

相關問題