Не работает соединение с Android на UWP на рабочем столе - ZeroMq (NetMq) - PullRequest
0 голосов
/ 18 января 2019

Я пробовал несколько примеров ZMQ на C++, C# и Python.Я пытаюсь использовать шаблон Request-Reply для подключения устройства Android к ПК, работающему с UWP с Xamarin forms.

Ниже приведен код Requestor:

public void HelloWorld()
{


    var timer = new Timer(60000);
    timer.Start();
    timer.Elapsed += (sender, args) =>
    {
        this.Cancel = true;

        timer.Stop();
    };
    // Create
    const string endpoint = "tcp://PC_ip:3245";
    using (var request = new RequestSocket())
    {
        request.Bind(endpoint);


        Thread.Sleep(2000);
        while (!Cancel)
        {
            request.SendFrame("Requester says hello");
            var reply = request.ReceiveFrameString();
            Debug.WriteLine("Gets reply {0}",reply);
        }
    }

}

Код сокета ответа:

public void HelloWorld()
{
    var timer = new Timer(60000);
    const string endpoint = "tcp://PC_ip:3245";
    timer.Start();
    timer.Elapsed += (sender, args) =>
    {
        timer.Stop();
        Cancel = true;
    };

    using (var replierSocket = new ResponseSocket())
    {

        replierSocket.Connect(endpoint);
        Thread.Sleep(2000);
        while (!Cancel)
        {
            var replyFromRequester = replierSocket.ReceiveFrameString();
            Debug.WriteLine("Got reply {0}", replyFromRequester);
            replierSocket.SendFrame("Response socket say hello");

        }
    }
}

Cancel - логическое значение

Я просмотрел несколько вопросов об этом и добавил задержку, и эти блоки кода подключения срабатывают только после нажатия кнопки в приложении.

Во время отладки request.ReceiveFrameString() replierSocket.ReceiveFrameString(); даже не срабатывает.

Я новичок в сетевом программировании, я понимаю, что для шаблона REQ / REP код должен быть в определенном порядке, который я отслеживал и исправлял.поверьте и отключите брандмауэр на моем ПК, чтобы брандмауэр не блокировал мои входящие подключения с устройства Android.

PC_ip обозначает IPv4-адрес, который я получил от ipconfig / all для моего wifi.Я также попробовал внешний ip своей машины с таких сайтов, как whatsmyip.org на ResponseSocket, но я все еще не получаю ответ между устройствами.

Пожалуйста, дайте мне знать, что я делаю неправильно.


Репозиторий проблем с репликацией: GitHub / me / XamZeroMq

...