[英]Java Sockets Not Working Over LAN?
我正在嘗試為我創建的游戲添加多人游戲功能。 我已經閱讀了有關套接字的 Java教程,但發現自己仍然無法實現我想要的功能。 在類似的帖子中,另一位用戶似乎遇到了與我完全相同的問題。
就我而言...
一些額外的信息...
System.out.println(serverSocket.getInetAddress());
在服務器程序中,兩台機器上都返回0.0.0.0/0.0.0.0
。從
System.err.println("Couldn't get I/O for the connection to " + hostName);
e.printStackTrace();
System.out.println(e.getMessage());
System.out.println(e.getLocalizedMessage());
我得到
Couldn't get I/O for the connection to 192.168.0.37
Operation timed out
java.net.ConnectException: Operation timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at Main.MainClass.main(MainClass.java:17)
Operation timed out
為什么我可能需要禁用客戶端或服務器計算機上的防火牆? Java 沒有為傳入數據打開套接字嗎? 如果教程還沒有運行,為什么它會變得如此簡單?
ConnectException: operation timed out
這表明主機已關閉或防火牆問題。
為什么我可能需要禁用防火牆
因為它阻塞了入站連接。 您不需要完全禁用它:您需要在服務器防火牆中打開您正在偵聽的端口。
Java沒有打開套接字嗎
是的,這就是您獲得 0.0.0.0 的方式:它是該ServerSocket
的偵聽地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.