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