Как сделать так, чтобы эмулятор подключался к тому же маршрутизатору, что и маршрутизатор хост-машины? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь выполнить обнаружение устройства для открытых комнат (устройство может открыть комнату) в моем приложении, чтобы отладить, что мне нужно два устройства - мой телефон и эмулятор Android, проблема в том, что эмулятор подключен к виртуальная сеть, мне нужно, чтобы она была подключена к тому же маршрутизатору, что и мой телефон - мой локальный маршрутизатор (тот, к которому подключен хост-компьютер)

Я искал в Интернете результаты, и все они сказали, что используют 10.0.2.2, но это способ доступа к хост-машине, мне нужно установить связь с другим устройством (моим телефоном) в той же локальной сети, что и хост-компьютер.

Код, используемый для трансляции сообщения об обнаружении:

    public static void QueryServers(Activity activity)
    {
        IAsyncResult ar = udpClient.BeginReceive(new AsyncCallback(ReceiveMessage), activity);
        byte[] message = Utility.GetEncodedMessage(((int)Protocol.QUERY_SERVERS).ToString());
        udpClient.Send(message, message.Length, new IPEndPoint(IPAddress.Broadcast, UDPPort));
    }

    private static void ReceiveMessage(IAsyncResult ar)
    {
        IPEndPoint remote = new IPEndPoint(IPAddress.Any, UDPPort);
        string message = Utility.GetDecodedMessage(udpClient.EndReceive(ar, ref remote));
        udpClient.BeginReceive(new AsyncCallback(ReceiveMessage), ((Activity)ar.AsyncState));
        Parse(remote, message, ((Activity)ar.AsyncState));
    }

Он отлично работает на том же устройстве (localhost), но нет возможности связаться со вторым устройством, например, мой телефон.

...