2012-12-19 157 views
4

我想在我的筆記本電腦和我的Android之間建立一個Socket連接。拒絕套接字連接請求

我把筆記本作爲服務器。要建立連接,我使用的是筆記本電腦的IP,如ipconfig(運行Windows 7)所示(此地址與'whatismyip'等網站顯示的地址不同)。

當我將筆記本電腦和Android連接到相同的無線路由器並使用ipconfig給定的地址時,情況正常。

但是,當我使用我的Android的EDGE連接並訪問相同的IP地址時,Socket連接請求被拒絕。另外,whatismyip給出的IP不能用於WLAN或EDGE。

我聽說有兩個IP地址,內部和外部。我想ipconfig給出的地址是內部地址。此外,還有一些過程稱爲端口轉發。

有人可以幫助我通過EDGE連接訪問ServerSocket嗎?我應該使用哪個IP,如果需要進行端口轉發,那該怎麼辦? 謝謝。

+1

這屬於http://superuser.com或android特定用戶問答網站(http://android.stackexchange.com/)。這不是一個*編程*問題。 –

+0

但是android連接部分不是問題,相反,如果我嘗試連接到正確的IP地址或端口轉發等,我認爲它會正常工作.. :) –

+0

選擇正確的IP地址主要是知道問題這是放入你的應用程序的配置文件(或其他)的權利。端口轉發是在Android系統的iptables中實現的。這些都與編程無關......因此這個問題是無關緊要的。 –

回答

2

在您的筆記本電腦上,當您運行ipconfig命令時,它顯示在您連接到路由器的任何接口上的IP地址都是私有地址(不是可路由地址)。 whatismyip顯示的IP地址是分配給您的調制解調器的IP地址。當您的手機通過Wi-Fi連接到路由器時,您與筆記本電腦位於同一子網中,並且可以創建連接。當您在EDGE網絡上時,您位於不同的子網上,並且由於您的筆記本電腦的IP不可路由,所以無法連接到它。在大多數路由器上,您可以將目標端口的所有入口流量配置爲發送到您的筆記本電腦。這個配置對於​​每個路由器都有所不同,但這個想法是相同的。您希望將此流量轉發到的IP地址是您的筆記本電腦的專用IP地址(由ipconfig顯示的IP地址),並且該端口是指您要發送的流量的端口。

+0

+1這被稱爲端口轉發 –