W / System.err: java. net .SocketException: сбой сокета: EACCES (разрешение отказано) в android - PullRequest
0 голосов
/ 07 августа 2020

Привязка pu sh данных из моего приложения к локальному серверу.

 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)

Не могли бы вы помочь мне решить эту проблему.

1 Ответ

0 голосов
/ 07 августа 2020

Ваше приложение работает на эмуляторе. Если ваше приложение использует адрес localhost 127.0.0.1, оно пытается подключиться к серверу, также работающему на этом эмуляторе.

Если ваш сервер работает на том же p c, ваш эмулятор работает в вашем приложении, он должен использовать ip адрес 10.0.2.2 вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...