Re: [問題] 關於ns2 queue存取的問題

看板Network_Sim作者 (lancety)時間12年前 (2011/10/21 16:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1EeIshcT (Network_Sim)
文章代碼(AID): #1EeIshcT (Network_Sim)