簡體   English   中英

互聯網上的Java套接字

[英]Java sockets over internet

我已經使用Java套接字編寫了客戶端和服務器。 兩台計算機位於同一網絡上。 當我使用本地IP地址進行連接時,沒有任何問題。 但是,如果我使用公共IP地址,則連接超時,客戶端將拋出“ SocketException:連接重置”,而服務器將拋出“ SocketException:連接被對等方重置:套接字寫入錯誤”。 這種情況在大多數情況下都會發生,但是一旦出現藍月亮,連接實際上就會成功。 我可以從客戶端計算機成功ping服務器本地地址和路由器。

我進入路由器,將服務器計算機分配給一個永久IP地址,並將相關端口上的所有流量轉發到該IP地址。 不幸的是,那是我認為唯一可以解決該問題的事情,但事實並非如此。 我還關閉了服務器上的Windows防火牆,仍然沒有運氣。

客戶端:(ip來自whatismyip.com)

Socket s = new Socket("xx.xxx.xxx.xx", 27499);

連接。

服務器:

InetAddress ip = InetAddress.getLocalHost();
ServerSocket ss = new ServerSocket(27499, 0, ip);
Socket cs = ss.accept();

任何幫助,將不勝感激。 如果需要,我可以提供更多代碼。

“ SocketException:連接被對等方重置:套接字寫入錯誤”

這意味着服務器實際上正在拒絕連接,可能是防火牆問題,服務器拒絕了連接,服務器實際上已關閉或過載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM