Я пытаюсь выполнить обнаружение устройства для открытых комнат (устройство может открыть комнату) в моем приложении, чтобы отладить, что мне нужно два устройства - мой телефон и эмулятор 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), но нет возможности связаться со вторым устройством, например, мой телефон.