微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OMNeT ++:如何通过特定的无线接口发送数据包?

如何解决OMNeT ++:如何通过特定的无线接口发送数据包?

我有两个节点,每个节点都由两个WLAN接口组成,wlan0ieee80211wlan1ieee80215基于INET框架的AdHoc Host。

我正在使用UDP BasicAPP发送数据包。当我启用两个WLAN接口时,它始终通过wlan0(即ieee80211协议)发送数据包。如果要使用ieee80215发送数据包,则必须在发送者节点中禁用ieee80211 WLAN接口。

是否有任何方法可以确定将哪个WLAN接口用于发送数据包?

解决方法

您可以选择要选择发送数据包的接口,然后将InterfaceReq标签添加到数据包。以下代码通过wlan1接口发送udp数据包。

InterfaceEntry *ifEntry = interfaceTable->getInterfaceByName("wlan1");
Packet *udpPacket = new Packet("Packet");
udpPacket->addTagIfAbsent<InterfaceReq>()->setInterfaceId(ifEntry->getInterfaceId());

或者,另一方面,如果您知道接口ID,则可以使用以下内容:

InterfaceEntry *ifEntry = interfaceTable->getInterfaceById(int interfaceID);
,

由于这些是不同的无线技术,因此它们显然位于不同的IP网络上。或者至少应将它们配置为位于不同的网络上。如果它们位于不同的网络上,则您的目标IP显然是选择数据包应使用的接口。

简而言之,您的IP(地址和网络)可能配置不正确,这就是为什么您可以仅使用IP地址在两个接口之间进行选择的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。