⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forwarder.cc

📁 无线模拟仿真中
💻 CC
字号:
#include <template.h>#include <random.h>#include <address.h>#include <iostream.h>#include <rtp.h>#include <forwarder.h>static class ForwardAgentClass : public TclClass {public:  ForwardAgentClass():TclClass("Agent/Forwarder") {}  TclObject* create(int, const char*const*) {    return (new ForwardAgent());  }} class_forwarderagent;ForwardAgent::ForwardAgent() : Agent(PT_UDP),ragent_(0){  dst_addr_=-1;  comm_type=0; }int ForwardAgent::command(int argc, const char*const* argv){	if (argc == 3) {				if (strcmp(argv[1], "ragent") == 0) {		  cout << "set ragent " << endl;		        ragent_ = (NsObject *)TclObject::lookup(argv[2]);			return TCL_OK;		}		if (strcmp(argv[1], "dst-addr") == 0) {		  		        dst_addr_ = atoi(argv[2]);			return TCL_OK;		}		if (strcmp(argv[1], "comm-type") == 0) {		  		        comm_type = atoi(argv[2]);                        // 0 broastcast 1 unicast			return TCL_OK;		}	}	return (Agent::command(argc, argv));}void ForwardAgent::recv(Packet* p, Handler *){	  Tcl& tcl = Tcl::instance();  hdr_rtp *rh = hdr_rtp::access(p);  hdr_ip *iph = hdr_ip::access(p);  hdr_cmn *ch = hdr_cmn::access(p);  // cout << addr() <<"\t recieving a packet  dp " << iph->dport() << " dst_addr" << iph->daddr()<< endl;  // ch->next_hop_ = IP_BROADCAST;  iph->sport()=port();  iph->saddr()=addr();  if(comm_type==0)    {      iph->daddr() = IP_BROADCAST;    }else    {      iph->daddr()=dst_addr_;    }         iph->dport() = 3;  ragent_->recv(p, (Handler*)0);     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -