2010-11-12 105 views
1

我打算在Java中構建一些利用ServerSocket和Socket類的優勢程序。我有正確的代碼,我可以正確連接。但是,我想盡可能讓用戶在連接和服務器上儘可能簡單。所以,我需要一種方法從Java內部向前移植,以便我的程序可以在客戶機上構建服務器,並通過互聯網與其他機器通信,但程序的用戶無需付出額外的努力。有沒有任何有效的方法來執行此操作,而無需訪問任何需要下載的外部程序?端口從Java內部轉發

回答

1

您可以使用此little project

注意:客戶端機器通常位於NAT網關的後面,因此互聯網上的其他機器無法直接訪問它們。

0

只需將輸入連接管道連接到輸出連接呢?

如果檢索兩個插槽可以使用PipedInputStreamPipedOutputStream連接兩個不同的插座和轉發連接的雙方InputStreamOutputStream。請參閱文檔herehere

+0

您仍然需要編寫複製流的代碼,並且當您完成這些操作時,您需要的管道是什麼? – EJP 2010-11-13 04:25:52

0

如果服務器位於NAT或防火牆之後,並且您不想使用中間人幫助連接,那麼這將非常困難。我建議你看看NAT hole punching,特別是一些開源的Java實現,如Rodi

+0

這隻適用於UDP,也需要更改其他方。 – 2010-11-12 21:20:00