Я пытаюсь запрограммировать простую программу чата на Android. Для тестирования я хочу, чтобы сервер и клиент работали на одном устройстве. В настоящее время я застрял на самом первом этапе настройки серверной части, и я просто не знаю, что делаю не так. (Сервер будет поздно запускаться в собственном потоке)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int port = 4444;
try {
ServerSocket serverSocket = new ServerSocket(port);
Log.i("Info", "Server socket initiated on port" + port);
} catch (IOException e) {
Log.e("Error", "Could not listen on port " + port);
}
}
}
Я пробовал много разных портов, но все равно получаю ошибку ввода-вывода. Я также попытался просто использовать новый ServerSocket (0) для выделения свободного порта, используя следующий код:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(0);
Log.i("Info", "Server socket initiated on port" + serverSocket.getLocalPort());
} catch (IOException e) {
Log.e("Error", "Could not listen on port " + serverSocket.getLocalPort());
}
}
}
Но это просто возвращает номер порта -1, что означает, что серверный сокет по-прежнему ни к чему не привязан.
Я добавил в манифест разрешение <uses-permission android: name = "android.permission.INTERNET" /> и все равно получаю -1
get the IO Error какой? где трассировка стека?
хорошо, извините, я не знаю почему, но добавление разрешения теперь устранило проблему. Вдруг работает. Thx npinit!




Ответ заключался в том, чтобы добавить разрешение в манифест. Спасибо!
Возможно, вам потребуется указать, что вашему приложению требуется доступ к сети.