我試圖從我的電腦中創建一臺服務器,以便他們的電腦上的客戶端可以連接並與我的電腦通信。我在31350端口上創建了服務器,客戶端正在嘗試通過我的路由器的IP地址進行連接。但它只能通過LAN工作,當我有「本地主機」或我的計算機的名稱創建套接字的參數。而不是當我使用我的IP地址時,在不同的網絡上運行客戶端和服務器。這是代碼。Java Socket/Serversocket廣域網連接
這是我的電腦運行的服務器。
public static void main (String[] args) throws IOException
{
ServerSocket server = new ServerSocket(31350);
Socket client1 = server.accept();
}
這裏是我的朋友是他的計算機上運行的客戶端代碼
public static void main(String[] args) throws IOException, UnknownHostException
{
Socket socket;
// #'s are what I got from whatismyip.org on the server computer)
byte[] serverb = new byte[] {(byte)##, (byte)##, (byte)###, (byte)###};
socket = new Socket(InetAddress.getByAddress(serverb),31350);
}
這是什麼,當我在線程中運行客戶端
異常「主要」 java.net它說.ConnectException:連接超時:在java.net上的java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) 上的java.net.DualStackPlainSocketImpl.connect0(Native Method) 處連接 。 AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在java.net.PlainSocketImpl。在java.net.Socket.connect(Socket.java:579) 上的java.net.SocketSocketImpl.connect(SocksSocketImpl.java:391) 連接(PlainSocketImpl.java:157) Socket.java:528) at java.net.Socket。(Socket.java:425) at java.net.Socket。(Socket.java:241) at ClientTest.main(ClientTest.java:22)// 22是socket socket = new Socket(InetAddress.getByAddress(serverb),31350);
防火牆已禁用。我的路由器上的端口31350被轉發到我的計算機的本地ip地址,我使用ipconfig在cmd中獲得。但它仍然不起作用,我試圖從客戶端計算機創建套接字時發生IOException。服務器計算機上沒有任何反應。怎麼了?
由於多餘的文字,那竟然是問題。我沒有正確轉發外部端口的端口 – user1813598