g SOAP зонд событий не вызывается - PullRequest
0 голосов
/ 29 января 2020

g SOAP события зонда не вызываются.

#include "gen/wsdd.nsmap"
#include "wsddapi.h"

int main(int argc, char *argv[])
{

    std::string url("soap.udp://239.255.255.250:3702");

    int res = 0;
    std::cout << "to multicast" << std::endl;

    // create soap instance
    struct soap *serv = soap_new1(SOAP_IO_UDP);

    if (!soap_valid_socket(soap_bind(serv, NULL, 0, 1000)))
    {
        soap_print_fault(serv, stderr);
        exit(1);
    }

    // call resolve or probe
    if (endpoint.empty())
    {
        res = soap_wsdd_Probe(serv,
                              SOAP_WSDD_ADHOC,                   // mode
                              SOAP_WSDD_TO_TS,                   // to a TS
                              "soap.udp://239.255.255.250:3702", // address of TS
                              soap_wsa_rand_uuid(serv),          // message ID
                              NULL,                              // ReplyTo
                              types.c_str(),
                              scopes.c_str(),
                              NULL);
    }
    else
    {
        // send resolve request
        res = soap_wsdd_Resolve(serv,
                                SOAP_WSDD_ADHOC,                   // mode
                                SOAP_WSDD_TO_TS,                   // to a TS
                                "soap.udp://239.255.255.250:3702", // address of TS
                                soap_wsa_rand_uuid(serv),          // message ID
                                NULL,                              // ReplyTo
                                endpoint.c_str());
    }

    if (res != SOAP_OK)
    {
        soap_print_fault(serv, stderr);
    }

    // listen answers
    soap_wsdd_listen(serv, -1000000);
}

Программа застревает при достижении: soap_wsdd_listen (serv, -1000000); Я также реализовал события (в противном случае это покажет мне ошибку связи).

в любом случае, ни одно из событий не вызывается. что мне делать?

...