2011-08-15 44 views
0

我目前正在用java編寫的服務器開發java PC/Android應用程序。當我開發PC客戶端時,我在localhost:12345上啓動服務器,並且客戶端可以毫無問題地連接到此服務器(使用相同的主機名和端口)。昨天我嘗試使用Android設備進行連接時出現了問題。我使用手機開發應用程序,並輸入我的路由器公共IP 89.xx.xx.xxx和PC客戶端(12345)中的相同端口作爲主機地址。當然,我在我的路由器上設置了端口轉發(用於端口12344到12346),並且我在Windows Defender的端口12345上爲任何連接類型創建了規則。但仍然沒有成功。這很奇怪,因爲大約8個月之前我正在開發其他應用程序,一切正常。奇怪的是,當我第一次啓動服務器和PC客戶端時,沒有窗口提示窗口(贏得防禦者提示,允許我的應用程序連接到互聯網)。我認爲這是路由器轉發的問題(因爲在本地主機上它可以正常工作),但我不知道我還能做什麼。我在轉發旁打開了UPnP。我的路由器是THOMSON TWG850-4U。幾秒鐘後,我的android應用程序中出現超時異常端口轉發問題

+0

您是否驗證過您是否可以使用普通PC(不是您的Android應用程序)從外部連接到該服務器,只是爲了確保問題與android設備用於連接的移動網絡無關? – wollud1969

回答

0

您確定您的服務器綁定了0.0.0.0(接受任何接口上的傳入連接)而不是127.0.0.1(只接受本地主機連接)嗎?

+0

我在服務器套接字綁定上將localhost更改爲0.0.0.0(如果這就是你的意思),但它仍然無法連接 – Zani

0

如果您已經綁定到0.0.0.0,則嘗試將您的路由器設置爲DMZ您的PC IP地址,看看您是否允許連接。

+0

我之前嘗試過,但沒有區別。 FYI我打開端口轉發時,當我打開DMZ並連接我使用路由器公共IP – Zani

+0

如果您在網絡上時提出這些請求您應該使用計算機LAN IP而不是路由器公共IP。 –