INET4.4.0发送全网广播消息遇参数识别问题求助
在INET4.4.0中实现IP广播消息发送
- INET4.x版本重构了IP层模块,你之前用的
forceBroadcast参数已经被移除,可通过以下方式实现广播: - 直接指定广播地址发送:
在应用层代码里,把目标IP设为子网广播地址(比如192.168.1.255,根据你的子网配置调整)或者全局广播地址255.255.255.255即可。举个自定义应用的代码片段:IPv4Address destAddr("255.255.255.255"); auto packet = createPacket("BroadcastMsg"); auto ipv4Header = makeShared<Ipv4Header>(); ipv4Header->setDestAddress(destAddr); ipv4Header->setSrcAddress(Ipv4Address::SELF_ADDRESS); ipv4Header->setProtocol(IP_PROTOCOL_UDP); // 按你的应用协议调整 packet->insertAtFront(ipv4Header); send(packet, "ipv4Out"); - 配置路由器与主机的广播权限:
如果是跨子网广播,需要让路由器允许转发广播包,在omnetpp.ini中添加:
若主机被修改为不接收广播,也可在配置里开启接收权限:*.router.networkLayer.ip.forwardBroadcast = true*.host.networkLayer.ip.acceptBroadcast = true - 快速验证方法:
用INET自带的PingApp测试广播功能,在omnetpp.ini里配置:
运行仿真后查看其他主机是否收到Ping请求即可。*.host[0].pingApp.destAddr = "255.255.255.255" *.host[0].pingApp.sendInterval = 1s
内容的提问来源于stack exchange,提问作者O. Sarah
相关产品推荐
相关产品推荐

