マルチパスメモ
結局1ノードから送信する方法がよくわかりませんえん(ヽ'ω`)
とりあえずのエセマルチパスの実装として…
- 送信元/宛先ノードを2個ずつ
- 送信元/宛先ノードは同じ座標に2つ置く
- 中継ノードではrecvが実装された瞬間に次ノードへconnectをかける
- sendmsgで送信を行う
みたいな感じで…
// recv関数内で… if((this->relay_mode == 1 || clh->relay_mode == 1) && isDst != 1) { // relal_modeが設定されたノード or パケットヘッダにリレーが設定 + 宛先ノードではない Tcl& tcl = Tcl::instance(); // Tclインスタンス取得 char command[256]; sprintf(command, "$ns_ connect %s %s", this->my_agent, this->relay_agent); tcl.eval(command); // Tclコマンドを実行(自AgentとリレーAgentをconnect) Packet::free(p); // Packetのメモリ解放 return; // プログラム終了 }