【问题标题】:OMNeT++ : how to send a packet via specific wireless interface?OMNeT++:如何通过特定的无线接口发送数据包?
【发布时间】:2020-10-05 14:26:12
【问题描述】:

我有两个节点,每个节点包含两个 WLAN 接口,wlan0ieee80211wlan1ieee80215,基于 INET 框架中的 AdHoc Host。

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

有没有办法确定哪个 WLAN 接口将用于发送数据包?

【问题讨论】:

    标签: omnet++ inet


    【解决方案1】:

    您可以选择要选择哪个接口来发送数据包,并将 InterfaceReq Tag 添加到数据包中。以下代码通过 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);
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-10-11
        • 1970-01-01
        • 2018-04-15
        • 2019-02-14
        • 2015-05-04
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        • 2019-08-19
        相关资源
        最近更新 更多