Re: [問題] 關於ns2 queue存取的問題
※ 引述《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的寫法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.210.30
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Network_Sim 近期熱門文章
PTT數位生活區 即時熱門文章