2015-02-06 50 views
-2

好的,我有一個使用端口6567和IP地址0.0.0.0的java服務器設置,以接受任何連接。當我嘗試通過本地網絡(192.168.1.15)進行連接時,使用服務器可以很好地連接。但是,當我切換到非本地IP地址(我的路由器公共IP),我無法連接到它。Java網絡連接 - 沒有更多信息錯誤

我有路由器端口轉發和適當的規則就位在我的防火牆/等。以這種方式連接Java有什麼限制嗎?我可以在外部連接,但不能在內部連接。有什麼想法可能會導致這個問題?

我開始認爲這可能是一個特定的路由器的問題,是它可以拒絕連接,但我無法測試,目前。

+0

您沒有正確設置端口轉發或防火牆規則。 – EJP 2015-02-06 22:20:31

+0

我完全禁用了我的測試防火牆 - 沒有防火牆。我看不出我該如何搞砸端口轉發,因爲它在外部連接上工作得很好。更何況,如果我能夠建立聯繫,我嚴重懷疑它與他們的問題。正如我的文章所說,我想知道Java特定問題或路由器特定問題。 – Sh4d0wsPlyr 2015-02-06 23:13:13

回答

0

原來,這只是路由器本身拒絕使用外部IP地址的內部連接。我個人的解決方法是隻添加一些測試代碼,如果在本地計算機上自動將IP更改爲127.0.0.1而不是外部IP。

工作得十分完美這兩個我自己的電腦上,並讓人們進行外部連接,一旦我設定了。

-1

嗯我不確定,但也許這會有所幫助。

很可能,您的ServerSocket被綁定到本地IP地址(例如0.0.0.0),並且ServerSocket綁定到那裏的端口地址;並且不會響應來自IP地址的任何請求。嘗試new ServerSocket(4444, 50, InetAddress.getByAddress(new byte[] { YOU IP ADDRESS }).

或再次檢查防火牆

編輯:告訴我你是怎麼想從其他IP連接比本地?

+0

不知道它是否重要 - 據我所知,它可以與外部連接一起工作。當我測試了它到達服務器的端口轉發成功。我唯一關心的是我想讓它接受來自任何IP地址的連接(這是我認爲0.0.0.0做的,是對的嗎?)。 – Sh4d0wsPlyr 2015-02-06 21:26:14

+0

你說關於綁定到0.0.0.0是不正確的,你的解決方案會拋出一個'BindException.' – EJP 2015-02-06 22:21:42