2011-09-21 215 views
0

我在Java中實現了一個Socket程序,並意識到Socket和ServerSocket類只能用在我的LocalNetwork中。我需要做什麼,以便遠程PC(不同路由器)可以連接到我的PC (服務器)?我應該使用什麼API?網絡上的套接字

+2

它們只能用於您的網絡允許的方式。你無法通過阻止這個的防火牆。您也無法使用它連接到您無法訪問的網絡。如果你不能這樣連接,這是一個網絡問題。 –

回答

5

關於SocketServerSocket沒有任何內容限制它們到本地網絡。圍繞防火牆等可能存在問題,但這些類本身不會有任何額外的限制。

1

沒有限制,它也可以在互聯網上使用,理想情況下,您要做的就是確保您的防火牆允許您連接到由套接字偵聽的端口,您可以創建端口轉發您的DMZ或NAT過濾並將請求轉發給監聽機器。

1

「Socket和ServerSocket類只能用在我的LocalNetwork中。」

你從哪裏得到的?

無論如何,Socket和ServerSocket根本不侷限於本地網絡。這是不是本地:

Socket s = new Socket("www.java2s.com", 80); 

但是,如果您的客戶端和服務器在不同的網絡,那麼你必須建立正確的路由(即配置路由器的DMZ等)。