如何在OMNeT++(INET)中将UDP数据包发送至指定主机
解决UDPBasicApp从广播改为单播发送的问题
核心修改逻辑
UDPBasicApp默认可能采用广播地址(如255.255.255.255)发送数据包,要实现仅向指定主机B发送,只需修改其目的地址配置,并确保主机B的UDPSink监听对应端口即可。
具体配置步骤
1. 配置主机A的UDPBasicApp
在主机A的UDPBasicApp模块参数中,将destAddresses设为主机B的具体IP地址,同时指定匹配的目标端口:
*.hostA.app[0].typename = "UDPBasicApp" *.hostA.app[0].destAddresses = "192.168.1.100" # 替换为主机B的实际IP *.hostA.app[0].destPort = 5000 # 自定义端口,需与主机B的UDPSink端口一致 *.hostA.app[0].messageLength = 100 # 按需调整数据包长度 *.hostA.app[0].sendInterval = 1s # 按需调整发送间隔
2. 配置主机B的UDPSink
确保主机B的UDPSink模块监听上述配置的端口,以接收单播数据包:
*.hostB.app[0].typename = "UDPSink" *.hostB.app[0].localPort = 5000 # 与主机A的destPort保持一致
验证注意事项
- 确认主机A与主机B网络路由可达(同网段或跨网段路由配置正确)
- 检查两台主机的IP地址配置无冲突
- 仿真运行后,可通过OMNeT++的Packet Inspector查看数据包目的地址,确认已从广播地址切换为主机B的单播IP
内容的提问来源于stack exchange,提问作者Sa3ida Tmd
相关产品推荐
相关产品推荐

