我已经建立了一个局域网,路由器在 192.168.1.1,我在 192.168.1.10 有硬件,它正在向 192.168.1.105:14455 发送 UDP 数据包。
我的电脑也在这个局域网中。它的IP地址是由路由器随机分配的。我想在 192.168.1.10 收听从我的硬件发送的数据包。
目前,我将 PC 的地址设置为 192.168.1.105 并绑定(bind)到 0.0.0.0:14455。
但是,如果我不绑定(bind)到 0.0.0.0 来监听所有地址,那么我应该绑定(bind)到哪个地址 (x.x.x.x:14455) 来监听我的硬件?
此外,如果我要求硬件通过网络进行广播。我应该如何绑定(bind)我的电脑(x.x.x.x:14455?)?
最佳答案
对于单播,您应该绑定(bind)到 INADDR_ANY,或者绑定(bind)到发送方使用的特定 IP 地址(仅当您在 PC 上拥有多个 IP 时)。对于广播,您应该始终绑定(bind)到 INADDR_BROADCAST,否则您可能看不到广播数据包,具体取决于实现。
关于sockets - 如何绑定(bind)到正确的地址和端口以进行 UDP 通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454220/