我有以下情况:3个无线主机H1,P1和P2(WirelessHost类),其中H1主机具有自定义UDP应用程序,而P1和P2使用UDPEchoApp。OMNeT ++和INET与UDP的无线通信
这个想法是,H1以预定的方式将消息发送给另外两个,例如, H1向P1发送一条消息并等待P1回送,只有在接收到来自P1的回声后,才能将消息发送给P2。
我的问题是:我该如何获得这种行为?我能够向P1和P2发送消息,但我不知道如何告诉H1在发送给P2之前等待P1答复。
还有关于ARP的另一个问题。我现在使用arpType = GlobalARP,但我想知道,我怎样才能避免H1发送ARP请求?我怎么能告诉H1在哪里找到某些主机?
由于网络层并不是真的必要,是否可以忽略它并仅仅用它来将消息从应用层转发到MAC,MAC然后负责找到正确的目标地址?
首先,感谢您的回复,我有一个问题,虽然,我得到这个错误 '的check_and_cast():不能投nullptr键入“INET :: UDPDataIndication *”'时的接收。来自UDPEchoApp的消息。你知道为什么吗?是否因为特定的数据包结构? – brid
自己的消息可能已经作为UDP数据包进行处理。不幸的是,'UDP_I_DATA'等于0,相同类型的值使用自己的消息。我已更新我的示例并添加了一个新条件,它应该可以解决该问题。 –
仍然无法正常工作。我所拥有的其实是这样的: 'if(msg-> isSelfMessage()){// ..} else if(msg-> getKind()== UDP_I_DATA){// ...}'已经过滤了自己的消息 – brid