Re: [问题] 关于ns2 queue存取的问题

楼主: Lancety (lancety)   2011-10-21 16:30:32
※ 引述《sasa530 (米莉)》之铭言:
: 我想请问关于 如何在NS2中将packet存入queue中
: 然后在适当的时间后 存取在queue里面的packet的资料(如GPS位置、packet id)
^这边您可以利用Timer进行计时的动作
Timer基本功能在内建的TimerHandler类别已经写好 您可以参考一下
通常Timer建构时会需要传入agent当作参数
TimerHandler中的expire()定义进行计时到期时须要做的动作
和使用TimerHandler中的sched()来进行计时的动作设定
: 最后再比对packet中的相关资料
: 是这样的 我前阵子撰写了一个 单纯发送packet及接收packet的agent
: 但是我想加入新的功能如下:
: 当来源节点广播packet时,周围的邻居节点会接收到来源节点的广播
: 而这些邻居节点接收到来源节点的广播后,会马上重新广播回应来源节点
: 而这些邻居节点所广播的封包会夹带如:位置资讯、packet id
: 当来源节点接收到邻居节点的重新广播后,会将邻居节点的packet存入queue中
: 最后来源节点会存取queue里面所接收到的邻居节点的封包内的位置资讯及packet id
: 然后再比对queue中的packet内的位置资讯及packet id
: 根据这些资料 挑选出适当的节点
: 也就是说 我想将packet存入queue中 再比对queue里面所有的packet内的资讯
: 不知道利用撰写agent的方式能否办到?
可以
: 最近google了一阵子还是没有什么头绪
: 不知道有没有人做过这部分
: 还是说可以用其他方式来达成我的目的?
您需要在agent中新增一个Queue
用来放置您所需要纪录的的封包资料
Queue一样可以参考内建的Queue类别
您可以使用内建的enque()这个函式来储存封包
不过内建的功能里面可能没有比对资料的功能
这部分您可能需要自行编写
或者您也可以额外写一个table在agent中
将您收到的packet中资料数值取出并且放置于table中
当需要检查周围节点资讯时 可以从table中寻找
当然table的设计可能需要您自行编写
或参考其他agent中table的写法

Links booklink

Contact Us: admin [ a t ] ucptt.com