亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? or.cc

?? ns2下模擬實現(xiàn)洋蔥路由協(xié)議
?? CC
字號:
#include "or.h"#include <stdlib.h>//Nexthop is the end ,use -1 instead! in fact,-1 means BROADCAST#define END	-1int hdr_or::offset_;static class OrHeaderClass : public PacketHeaderClass {public:	OrHeaderClass() : PacketHeaderClass("PacketHeader/Or", 					      sizeof(hdr_or)) {		bind_offset(&hdr_or::offset_);	}} class_rohdr;static class OrClass : public TclClass {public:	OrClass() : TclClass("Agent/Or") {}	TclObject* create(int, const char*const*) {		return (new OrAgent());	}} class_or;OrAgent::OrAgent() : Agent(PT_OR), seq(0){	bind("packetSize_", &size_);}int OrAgent::command(int argc, const char*const* argv){  if (argc == 2) {    if (strcmp(argv[1], "send") == 0) {      // Create a new packet      Packet* pkt = allocpkt();      // Access the Or header for the new packet:      hdr_or* hdr = hdr_or::access(pkt);      hdr_ip* hdrip = hdr_ip::access(pkt);            hdr->seq = seq++;      hdr->nexthop = END;      hdr->next = NULL;            printf("Node %d :\n",(int)hdrip->saddr());      printf("seq-%d has been sent!\n\n",hdr->seq);      // Store the current time in the 'send_time' field      hdr->send_time = Scheduler::instance().clock();      // Send the packet      send(pkt, 0);      // return TCL_OK, so the calling function knows that      // the command has been processed      return (TCL_OK);        }        else if (strcmp(argv[1], "start-WL-brdcast") == 0) {      Packet* pkt = allocpkt();            hdr_ip* iph = HDR_IP(pkt);            iph->daddr() = IP_BROADCAST;      iph->dport() = iph->sport();                  printf("Node %d :\n",(int)iph->saddr());      printf("IP_BROADCAST start!\n\n");      send(pkt, (Handler*) 0);      return (TCL_OK);    }  }    else if (argc == 3 && strcmp(argv[1], "send") == 0) {      // Create a new packet      Packet* pkt = allocpkt();      // Access the Or header for the new packet:      hdr_or* hdr = hdr_or::access(pkt);      hdr_ip* hdrip = hdr_ip::access(pkt);            hdr->seq = seq++;         hdr->nexthop = atoi(argv[2]);            struct hdr_or* next_or_pkt = (struct hdr_or *) malloc(sizeof(struct hdr_or));       hdr->next = next_or_pkt;      hdr->next->nexthop = END;      hdr->next->next = NULL;            printf("Node %d :\n",(int)hdrip->saddr());      printf("seq-%d has been sent!\n\n",hdr->seq);      // Store the current time in the 'send_time' field      hdr->send_time = Scheduler::instance().clock();      // Send the packet      send(pkt, 0);      // return TCL_OK, so the calling function knows that      // the command has been processed      return (TCL_OK);  }    else if (argc == 4 && strcmp(argv[1], "send") == 0) {      // Create a new packet      Packet* pkt = allocpkt();      // Access the Or header for the new packet:      hdr_or* hdr = hdr_or::access(pkt);      hdr_ip* hdrip = hdr_ip::access(pkt);      hdr->seq = seq++;         hdr->nexthop = atoi(argv[2]);            struct hdr_or* next_or_pkt_1 = (struct hdr_or *) malloc(sizeof(struct hdr_or));       hdr->next = next_or_pkt_1;      hdr->next->nexthop = atoi(argv[3]);            struct hdr_or* next_or_pkt_2 = (struct hdr_or *) malloc(sizeof(struct hdr_or));      hdr->next->next = next_or_pkt_2;      hdr->next->next->nexthop = END;      hdr->next->next->next = NULL;            printf("Node %d :\n",(int)hdrip->saddr());      printf("seq-%d has been sent!\n\n",hdr->seq);            // Store the current time in the 'send_time' field      hdr->send_time = Scheduler::instance().clock();      // Send the packet      send(pkt, 0);      // return TCL_OK, so the calling function knows that      // the command has been processed      return (TCL_OK);  }  else if (argc == 5 && strcmp(argv[1], "send") == 0) {/////////////////////////////////      // Create a new packet      Packet* pkt = allocpkt();      // Access the Or header for the new packet:      hdr_or* hdr = hdr_or::access(pkt);      hdr_ip* hdrip = hdr_ip::access(pkt);      hdr->seq = seq++;         hdr->nexthop = atoi(argv[2]);            struct hdr_or* next_or_pkt_1 = (struct hdr_or *) malloc(sizeof(struct hdr_or));       hdr->next = next_or_pkt_1;      hdr->next->nexthop = atoi(argv[3]);            struct hdr_or* next_or_pkt_2 = (struct hdr_or *) malloc(sizeof(struct hdr_or));      hdr->next->next = next_or_pkt_2;      hdr->next->next->nexthop = atoi(argv[4]);      struct hdr_or* next_or_pkt_3 = (struct hdr_or *) malloc(sizeof(struct hdr_or));      hdr->next->next->next = next_or_pkt_3;            hdr->next->next->next->nexthop = END;      hdr->next->next->next->next = NULL;            printf("Node %d :\n",(int)hdrip->saddr());      printf("seq-%d has been sent!\n\n",hdr->seq);            // Store the current time in the 'send_time' field      hdr->send_time = Scheduler::instance().clock();      // Send the packet      send(pkt, 0);      // return TCL_OK, so the calling function knows that      // the command has been processed      return (TCL_OK);  }  // If the command hasn't been processed by OrAgent()::command,  // call the command() function for the base class  return (Agent::command(argc, argv));}void OrAgent::recv(Packet* pkt, Handler*){  // Access the IP header for the received packet:  hdr_ip* hdrip = hdr_ip::access(pkt);    // Access the Or header for the received packet:  hdr_or* hdr = hdr_or::access(pkt);    // Create a new packet  Packet* pktfwd = allocpkt();        // Access the Or header for the new packet:    hdr_or* hdrfwd = hdr_or::access(pktfwd);  hdr_ip* hdrfwdip = hdr_ip::access(pktfwd);    printf("Node %d:\n",(int)hdrfwdip->saddr());  int src=hdrip->saddr();   int pktsize = hdr_cmn::access(pkt)->size()+size_of_packet(pkt);
  printf("Received seq-%d from node %d! size: %d\n",hdr->seq,src,pktsize);     // check if in brdcast mode  if ((u_int32_t)hdrip->daddr() == IP_BROADCAST) {             Packet::free(pkt);          // add brdcast address    hdrfwdip->daddr() = IP_BROADCAST;    hdrfwdip->dport() = hdrfwdip->sport();    printf("IP_BROADCAST reply!\n\n");    send(pktfwd, 0);        return;  }  else if (hdr->nexthop!=END) {        // Set the send_time field to the correct value    hdrfwd->send_time = hdr->send_time;    hdrfwd->rcv_time = Scheduler::instance().clock();    hdrfwd->seq = hdr->seq;        hdrfwd->nexthop = hdr->next->nexthop;    hdrfwd->next = hdr->next->next;        printf("Cost time: %3.1f ms!\n",(hdrfwd->rcv_time - hdrfwd->send_time) * 1000);    printf("Nexthop is Node %d\n\n",hdr->nexthop);    // Discard the packet    Packet::free(pkt);        // Send the packet    send(pktfwd, 0);    return;  }    printf("This is the Ending Node!\n\n");  hdrfwd->rcv_time = Scheduler::instance().clock();  printf("Or Routing of seq-%d is finish! Cost time: %3.1f ms!\n\n",hdr->seq,(hdrfwd->rcv_time - hdr->send_time) * 1000);  printf("************************\n\n");	  // Discard the packet  Packet::free(pktfwd);  Packet::free(pkt);  return;}int OrAgent::size_of_packet(Packet* pkt){  // Access the Or header for the received packet:  hdr_or* hdr = hdr_or::access(pkt);  int size = sizeof(struct hdr_or);  int sum = size;  while(hdr->next!=NULL)  {  	sum+=size;  	hdr = hdr->next;  }  return sum;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品午夜久久| 午夜精品久久久久久久| 国内不卡的二区三区中文字幕| 欧美日韩亚洲综合一区| 亚洲高清在线精品| 欧美亚洲国产一区在线观看网站| 亚洲国产日韩综合久久精品| 欧美精品高清视频| 国产精品系列在线观看| 中文字幕制服丝袜成人av| 色婷婷激情久久| 青草国产精品久久久久久| 欧美mv日韩mv国产网站| 99国产精品一区| 丝袜美腿成人在线| 久久精品视频免费观看| 日本高清成人免费播放| 日本在线不卡视频一二三区| 久久精品欧美一区二区三区不卡| 91美女在线观看| 日本中文字幕不卡| 国产精品免费久久| 欧美精品丝袜久久久中文字幕| 韩国v欧美v日本v亚洲v| 亚洲四区在线观看| 日韩免费视频一区| www.欧美.com| 久久激情五月婷婷| 亚洲免费观看高清| 久久综合色一综合色88| 色88888久久久久久影院野外 | 不卡高清视频专区| 亚洲超碰精品一区二区| 欧美激情中文字幕| 欧美一区二区精品| 91亚洲大成网污www| 国产美女一区二区| 日韩精品欧美精品| 亚洲色图视频网| 久久日韩粉嫩一区二区三区| 欧美在线视频你懂得| 国产成人av网站| 免费看欧美女人艹b| 一区二区三区蜜桃| 国产精品乱码人人做人人爱| 欧美一级片在线观看| 在线免费观看日本欧美| 成人免费三级在线| 成人激情视频网站| 日韩高清在线一区| 日韩欧美色综合网站| 99久久精品免费精品国产| 久久aⅴ国产欧美74aaa| 亚洲第四色夜色| 亚洲欧美一区二区久久 | 91原创在线视频| 国产一区不卡精品| 美女视频网站黄色亚洲| 亚洲成a人片综合在线| 亚洲人成网站影音先锋播放| 亚洲国产精品精华液ab| 久久色中文字幕| 精品国产污污免费网站入口| 欧美一区二区视频网站| 欧美久久久久久久久| 在线免费一区三区| 成人免费视频播放| 丁香六月综合激情| 粉嫩嫩av羞羞动漫久久久| 国产一区二区在线看| 精品一区二区三区av| 蜜桃视频第一区免费观看| 蜜臀久久99精品久久久画质超高清| 亚洲动漫第一页| 天天影视色香欲综合网老头| 一区二区久久久| 亚洲国产精品人人做人人爽| 亚洲高清免费在线| 日韩精品一二三| 美国十次了思思久久精品导航| 免费xxxx性欧美18vr| 久久99久久久久| 国产在线精品免费av| 国产自产视频一区二区三区| 国产麻豆成人传媒免费观看| 国产乱国产乱300精品| 成人爽a毛片一区二区免费| 成人午夜激情在线| 99久久精品免费| 欧美亚洲一区二区在线观看| 欧美日韩国产一级二级| 欧美日韩激情在线| 91精品国产综合久久福利| 精品少妇一区二区三区| 国产视频一区在线播放| 亚洲免费成人av| 日本成人在线网站| 国产成人免费高清| 色拍拍在线精品视频8848| 91麻豆精品国产91久久久久久久久| 日韩一区二区三区免费观看| 久久精品一区二区三区四区 | 一区二区视频在线看| 夜夜嗨av一区二区三区四季av| 偷拍一区二区三区四区| 国产一区二三区| 色视频成人在线观看免| 日韩免费观看2025年上映的电影| 国产欧美一区二区精品性色 | 丝袜亚洲另类欧美综合| 国产一区二区在线看| 一本色道久久综合亚洲精品按摩| 欧美一级黄色录像| 国产精品视频第一区| 亚洲电影第三页| 国产精品一卡二| 欧美久久久久久久久中文字幕| 国产亚洲精品aa| 日韩精品1区2区3区| 粉嫩av亚洲一区二区图片| 欧美日韩在线播放三区四区| 久久久精品国产免费观看同学| 一区二区三区在线观看视频| 国产乱人伦偷精品视频免下载| 色噜噜狠狠色综合中国| 久久这里只有精品6| 亚洲成人福利片| www.亚洲色图| 久久综合色天天久久综合图片| 亚洲成人免费在线| 懂色av中文字幕一区二区三区| 91精品在线免费| 亚洲日本护士毛茸茸| 国内精品第一页| 欧美精品18+| 一区二区三区四区中文字幕| 国产电影精品久久禁18| 3atv一区二区三区| 一级女性全黄久久生活片免费| 国产成人精品三级| 精品福利一二区| 午夜一区二区三区在线观看| 99久久亚洲一区二区三区青草| 久久精品视频在线免费观看| 美腿丝袜亚洲综合| 精品视频在线免费看| 亚洲精品国产第一综合99久久| 丁香天五香天堂综合| 久久婷婷久久一区二区三区| 奇米一区二区三区| 欧美丰满美乳xxx高潮www| 一区二区三区四区亚洲| 99精品国产热久久91蜜凸| 国产精品久久久久久久久快鸭| 黄网站免费久久| 精品日韩欧美在线| 麻豆精品久久久| 精品国产乱码久久久久久夜甘婷婷 | 欧美一区在线视频| 五月天婷婷综合| 欧美丰满一区二区免费视频| 天天操天天综合网| 欧美精选一区二区| 偷拍日韩校园综合在线| 91精品国产综合久久久久久漫画 | 欧美zozo另类异族| 伦理电影国产精品| 精品噜噜噜噜久久久久久久久试看| 日本aⅴ精品一区二区三区| 欧美一区二区久久| 久久99精品久久久| 久久精品一区二区| aa级大片欧美| 亚洲精品综合在线| 欧美日韩精品一区二区三区 | 亚洲在线免费播放| 欧美精品tushy高清| 麻豆高清免费国产一区| 久久久久亚洲蜜桃| 国产·精品毛片| 亚洲女爱视频在线| 欧美日韩大陆一区二区| 蜜臀av一区二区在线观看| 久久精品亚洲麻豆av一区二区 | 精彩视频一区二区三区| 国产网站一区二区| 99精品欧美一区二区三区综合在线| 一区二区视频免费在线观看| 69久久99精品久久久久婷婷| 久久精品国产秦先生| 中日韩免费视频中文字幕| 欧美亚洲日本国产| 激情五月婷婷综合网| 中文字幕亚洲在| 欧美理论片在线| 国产不卡视频在线观看| 亚洲妇熟xx妇色黄| 久久久久国产精品厨房| 日本精品裸体写真集在线观看 | 91精品国产综合久久精品图片 |