将套接字绑定到特定网络
Binding a socket to specific network
我的计算机连接到多个网络,例如Network A
和Network B
。我只想从网络B接收UDP广播数据包。
目前,我正在打开一个UDP套接字并将其绑定到INADDR_ANY。
sockaddr_in address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons( (unsigned short) 11000 );
if ( bind( handle, (const sockaddr*) &address, sizeof(sockaddr_in) ) < 0 )
{
//Operation Failed!
return false;
}
如何确保我只接收来自网络B的消息?
广播地址将以全1位结束,因此假设"hoNetAddr"是主机顺序地址:
uint32_t hoBcastAddr = (hoNetAddr & hoNetMask) | (~hoNetMask);
// e.g. 192.168.0.0/255.255.255.0 =>
// (C0A80000 & FFFFFF00) | (/*inverted netmask*/ 000000FF)
// broadcast is: C0A800FF
address.sin_addr.s_addr = htonl(hoBcastAddr);
(假设IPv4)
相关文章:
- 在不知道套接字的情况下关闭网络连接
- 在网络套接字计时器滴答后增加asio短读错误
- 提升网络套接字接受挂起
- C++和网络套接字
- POCO 网络套接字异常
- 是否可以寻址另一个网络中的服务器/客户端套接字?(C++)
- 使用 Boost.Asio 将 UDP 套接字绑定到特定网络接口
- 使用 UDP 协议从 Windows 套接字发送到 Qt 套接字的网络数据包上的结构编码和解码
- 如何在提升野兽网络套接字中传递模型类型
- 如何确定网络堆栈何时准备好再次打开到同一主机/端口的套接字?
- 野兽网络套接字惯用关机
- 网络:当接口打开/关闭时,在所有接口上绑定套接字
- 通过网络中的套接字进行文件传输时,该程序中的文件传输错误是什么
- 使用C 中的套接字通过网络发送音频数据
- 使用 SFML C++库在 UDP 网络中进行多套接字"握手"
- 网络tcp套接字应用程序重试方法
- 如何使用套接字构建健壮的网络体系结构
- 使用 C/C++ 套接字模拟网络状况
- C或C++库,用于对网络套接字帧进行编码和解码
- c++网络/套接字编程