我有第三方服务。如果您通过udp multicast(ipv6)发送请求,此服务将发送答案。我想在每个支持ipv6的网络设备上发送请求。
我使用了boost和发送方和接收方示例(http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/example/multicast/)来发送请求并重新获得结果。我只更改了ip地址和请求字符串。
我通过wireshark跟踪数据,我的请求没有使用指定的端口(端口是随机的)。所以我的接收器无法从服务中获取数据。
我对udp和boost :: asio框架并不熟悉。也许有更好的方法来实现我的目标。
我的C ++代码如下:
asio::ip::address listenerAddress = asio::ip::address::from_string("my ipv6 address");
asio::ip::address multicastAddress = asio::ip::address::from_string("FF02::3");
asio::io_service io_service;
receiver r(io_service, listenerAddress, multicastAddress);
sender s(io_service, multicastAddress);
io_service.run();