[英]Android java.net.SocketException: socket failed: EACCES (Permission denied)
[英]W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied) in android
綁定將數據從我的應用程序推送到本地服務器。
public class MainActivity extends AppCompatActivity {
Socket socket;
private static final String SERVER_IP = "127.0.0.1";//server ip
private static final int SERVERPORT = 8000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new ClientThread()).start();
}
private class ClientThread implements Runnable {
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVERPORT);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
在清單文件中,我已注冊以下權限
<uses-permission android:name="android.promission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
出現以下錯誤:
W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
I/zygote: NativeAllocBackground concurrent copying GC freed 2066(637KB) AllocSpace
objects, 0(0B) LOS objects, 73% free, 547KB/2MB, paused 13.469ms total 130.017ms
W/System.err: at java.net.Socket.createImpl(Socket.java:487)
W/System.err: at java.net.Socket.<init>(Socket.java:441)
W/System.err: at java.net.Socket.<init>(Socket.java:248)
W/System.err: at com.abc.MainActivity$ClientThread.run(MainActivity.java:85)
你能幫我解決這個問題嗎?
清單中有一個拼寫錯誤:PROmission 而不是 PERmission!
<uses-permission android:name="android.promission.INTERNET"/>
應該說
<uses-permission android:name="android.permission.INTERNET"/>
您的應用程序正在模擬器上運行。 如果您的應用程序使用本地主機地址 127.0.0.1,它會嘗試連接到也在該模擬器上運行的服務器。
如果您的服務器在同一台 PC 上運行,則您的應用程序上運行的模擬器應使用 ip 地址 10.0.2.2 代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.