У меня есть устройство Android, которое работает как точка доступа (также известная как точка доступа Wi-Fi), и на нем работает этот код:
serverSocket = new ServerSocket(serverPort);
serverSocket.setReuseAddress(true);
while (RUNNING) {
try {
final Socket socket = serverSocket.accept();
Я заставлю другое клиентское устройство подключиться к точке доступа Wi-Fi этого устройства и попытаюсь подключиться к розетке, и оно не сможет этого сделать.
IP-адрес точки доступа что-то вроде 192.168.43.1... поэтому я попробую подключиться с клиентского устройства к 192.168.43.1:8080, и это не сработает.
Однако, если оба устройства подключены к другой сети Wi-Fi, serverSocket.accept(); будет работать нормально! Я использую порт 8080.
Нужно ли указывать серверному сокету принимать интерфейс «ap0»? (Могу ли я это сделать?) Это проблема с брандмауэром на устройстве Android?
Любые решения/идеи/предложения приветствуются!
Изменить:
Я изменил порт на 8988 и теперь все работает отлично! ... Может ли это быть проблемой брандмауэра? Любые идеи, как ориентироваться в этой проблеме?