2012-02-23 68 views
1

假設我有三臺計算機:A,B,C:其中(A,B)構成網絡(直接連接)和(B,C)直接連接。現在,我想從A傳輸文件,使用Java套接字C(反之亦然)。我可以直接使用正常傳輸嗎?理論上,由於它們形成兩個具有不同IP地址的網絡,所以在任何一臺計算機上創建一個服務器套接字都不會導致其被另一個客戶端套接字發現。使用公共接入點通過兩個不同的網絡傳輸文件

如果不是這樣,那麼正在B中間宿主,這只是進出文件流包含的方式緩衝?

如果兩者都同樣可取和/或可行的,然後將第一種方法提高安全性問題和第二方法減少效率。請從實施的角度回答。謝謝。

回答

1

第二條本辦法肯定會工作(用於路由網絡數據包到家庭網絡時,我們使用了寬帶這一技術,但這種工作在網絡層不傳輸層)。本質上,您需要在B上創建兩個套接字連接,一個用於A,另一個用於C.在B上創建兩個線程以處理與每個對等體(A和C)的通信。在A和C也需要創建兩個線程,一個用於發送數據,另一個用於接收數據。希望這是你所期待的。

如果你以某種方式設法在C機訪問一臺機器,那麼它可以直接發送/接收設備之間的數據。在這種情況下還需要創建兩個線程兩個句柄發送/接收部分通信。

第一種方法是在性能方面更好,如果它的工作原理。但在第二種方法中,您可以在將數據轉發給A之前在B上應用額外的安全檢查。它完全取決於您的要求。