gpt4 book ai didi

c++ - 如何使用自定义消息扩展 Inet 的不同模块?

转载 作者:行者123 更新时间:2023-11-28 06:08:53 24 4
gpt4 key购买 nike

我已经启动并运行了 INET (AODV) 模拟的所有示例。我的网络由多个 AODV 路由器主机组成。

我的下一个任务是交换一些关于每个主机当前位置的自定义消息(将在一定时间后通过移动更新)。我找到的所有示例(通常)都是 tictoc,它要求我在 .cc 文件中构建一个 simpleModule,然后使用该模块在 .ned 文件中。我想使用 AODVRouter 模块来交换这些消息(因为它已经实现了网络所需的东西)。

This是我用来与 cSimpleModule

交换消息的示例

我试过这个例子(如 INET 项目中所述),但这里的问题是它只是扩展了 cSimpleModule。因为我想使用 AODVRouter 模块(来自 INET)作为我的发送者和接收者,所以我不能使用这个例子。所以我的问题是,另一种方法是什么(即通过 AODVRouter 模块等 INET 模块发送和接收消息)。

最佳答案

如何处理这个问题取决于这些消息是什么,以及它们与 AODV 协议(protocol)的关系。

  • 如果您正在尝试使用一些位置感知功能来扩展 AODV 协议(protocol),并且该位置将由路由协议(protocol)本身使用,那么您显然应该查看 AODVRouting source code .您可以在那里查看消息是如何发送/接收的。

  • 如果消息与AODV完全无关,而你想实现某种应用级消息交换,那么方法是创建一个“应用程序”模块并将其安装到路由器中。当然,您必须知道要使用 TCP 还是 UDP 发送数据(我猜是 UDP,因为它更适合面向消息的数据交换)。那时你应该实现类似 UDPBasicApp 的东西此外,您还可以创建自己的 PacketType,其中包含您要传输的数据(即节点的坐标)。用它来开始。

通常,TicToc 教程只是一个基本示例,用于说明 OMNeT++ 内核如何完成发送。在 INET 中发送需要额外的工作,具体取决于您尝试从哪个 OSI 层发送数据。例如,在应用层,您必须打开套接字(参见代码)并将其用于发送。 INET 代码库的其余部分将处理将信息正确嵌入到较低层数据包(UDP、IP、以太网)中的复杂性

关于c++ - 如何使用自定义消息扩展 Inet 的不同模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com