boost::asio UDP broadcasting
boost::asio UDP broadcasting
我想使用boost::asio
向本地网络中的所有计算机广播UDP消息。通过这些例子,我想出了
try {
socket.open(boost::asio::ip::udp::v4());
boost::asio::socket_base::broadcast option(true);
socket.set_option(option);
endpoint = boost::asio::ip::udp::endpoint(
boost::asio::ip::address::from_string("192.168.1.255"),
port);
}
catch(std::exception &e) {
}
并想用广播我队列中的消息
while(!queue.empty()) {
std::string message = queue.front();
boost::system::error_code ignored_error;
socket.send_to(
boost::asio::buffer(message),
endpoint,
0, ignored_error);
queue.pop_front();
}
但是我的代码在第一个代码块中抛出异常CCD_ 2异常。不过,它对127.0.0.1
运行良好。我做错了什么?
尝试以下代码片段发送UDP广播,利用ba::ip::address_v4::broadcast()
调用获取端点:
bs::error_code error;
ba::ip::udp::socket socket(_impl->_ioService);
socket.open(ba::ip::udp::v4(), error);
if (!error)
{
socket.set_option(ba::ip::udp::socket::reuse_address(true));
socket.set_option(ba::socket_base::broadcast(true));
ba::ip::udp::endpoint senderEndpoint(ba::ip::address_v4::broadcast(), port);
socket.send_to(data, senderEndpoint);
socket.close(error);
}
相关文章:
- 从udp接收帧对于人脸识别来说太慢
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- boost::asio UDP 广播客户端仅接收"fast"数据包
- (Winsock) UDP 接收工作正常,但同一套接字的发送失败
- NodeJs 服务器充斥着 UDP 广播,不发送响应
- 如何通过UDP接收QByteArray并将其解析为位字段结构?
- 发送固定大小的 UDP 数据包
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- 使用 UDP 中断 while()-循环
- 如何在 2 台主机之间保持 UDP 套接字连接打开
- 具有使用 UDP 套接字字节的限制的标头
- 在 Linux 中关闭 UDP 套接字后,recv 不会返回
- C++:将 UDP 袜子转移到新位置
- ESP32-AsyncUDP own handler function for udp.onPacket
- 将数据发送到多个客户端 UDP 时不支持地址族
- 使用单个套接字处理多个传入的 UDP 连接
- UDP 服务器无法发送回复,发送返回 -1,errno 为 22
- 使用 IP 帮助程序的 Windows 中活动 UDP 连接的远程地址
- boost::asio UDP broadcasting