отправить список подключений Wifi к веб-клиенту через WebServer в android - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь установить соединение Wi-Fi в android через WebClient на странице Html, когда соединение inte rnet теряется, я запускаю веб-сервер с помощью библиотеки nanohttpd-webserver и показываю страницу Hmtl соединения Wi-Fi в WebServer, но я необходимо отправить информацию о списке подключений Wi-Fi к WebServer, чтобы я создал Socket Server в android, для этого я использовал библиотеку netty-socketio. Когда я использовал библиотеки nanohttpd-webserver и netty-socketio, я получил ошибку при использовании того же порта, как я могу решить эту проблему, Ошибка: порт уже определен

try {
                 //Open Server for Wifi Connection
                    androidWebServer = new Httpd(3000,c);
                    androidWebServer.start();

                    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

                    StrictMode.setThreadPolicy(policy);
                    //Create socket Server connection
                    config = new Configuration();
                    config.setHostname("localhost");
                    config.setPort(3000);

                    server = new SocketIOServer(config);
                 //Get listOfWifi
                    List<WifiList> listWifiList = Utils.getWifiLists();
                    Log.i("ListOfWifi","" + listWifiList);
                    server.addConnectListener(client -> {
                        System.out.println("Client has Connected!");
                    });

                    server.addEventListener("client-ready", String.class, (client, message, ackRequest) -> {
                        System.out.println("Client said: " + message);
                    });

                    server.start();
                } catch (IOException e) {
                    e.printStackTrace();
                }

Класс Httpd

public class Httpd extends NanoHTTPD {

    Context context;

    public Httpd(int port,Context c) {
        super(port);
        context = c;
    }

    public Httpd(String hostname, int port) {
        super(hostname, port);
    }

    @Override
    public Response serve(String uri, Method method,
                          Map<String, String> header,
                          Map<String, String> parameters,
                          Map<String, String> files) {
        String answer = "";
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(context.getAssets().open("pixage_wifi_player/layout/index.html")));
            String line = "";
            while ((line = reader.readLine()) != null) {
                answer += line;
            }
            reader.close();

        } catch(IOException ioe) {
            Log.w("Httpd", ioe.toString());
        }


        return new NanoHTTPD.Response(answer);
    }

}
...