====================問題描述====================
在Activity中通過new ServerSocket(9090)創建了一個服務端口,為何通過netstat命令查看時該端口並沒有打開?
然后在客戶端無論如何也連接不上,這肯定的
代碼:
server=new ServerSocket(12345);
System.out.println("ip:"+server.getLocalSocketAddress()+"----port: "+server.getLocalPort());
System.out.println("服務器ip: "+server.getInetAddress());
System.out.println("服務器搭建成功************");
在logcat中能夠查看到“服務器搭建成功”等所有的輸出,都正常,但就是沒有真正的打開端口
但是如果是在Application程序中直接創建ServerSocket對象的話,就可以打開端口,客戶端連接也正常
求指教!!!
注:
manifest中網絡權限已經加了
<uses-permission
android:name="android.permission.INTERNET"></uses-permission>
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
====================解決方案1====================
模擬器上的端口不是PC上的端口,兩個需要做映射
把本機端口TCP/6100映射到模擬器TCP/7100端口(UDP也是一樣)。
>adb –s emulator-5554 forward tcp:6100 tcp:7100