#include <UDPBasicApp.h>
Inheritance diagram for UDPBasicApp:
Protected Member Functions | |
virtual IPvXAddress | chooseDestAddr () |
virtual cMessage * | createPacket () |
virtual void | sendPacket () |
virtual void | processPacket (cMessage *msg) |
virtual int | numInitStages () const |
virtual void | initialize (int stage) |
virtual void | handleMessage (cMessage *msg) |
Protected Attributes | |
std::string | nodeName |
int | localPort |
int | destPort |
int | msgByteLength |
std::vector< IPvXAddress > | destAddresses |
int | numSent |
int | numReceived |
Static Protected Attributes | |
static int | counter |
|
00064 { 00065 int k = intrand(destAddresses.size()); 00066 return destAddresses[k]; 00067 }
|
|
Reimplemented in UDPEchoApp. 00071 { 00072 char msgName[32]; 00073 sprintf(msgName,"UDPBasicAppData-%d", counter++); 00074 00075 cMessage *payload = new cMessage(msgName); 00076 payload->setByteLength(msgByteLength); 00077 return payload; 00078 }
|
|
00090 { 00091 if (msg->isSelfMessage()) 00092 { 00093 // send, then reschedule next sending 00094 sendPacket(); 00095 scheduleAt(simTime()+(double)par("message_freq"), msg); 00096 } 00097 else 00098 { 00099 // process incoming packet 00100 processPacket(msg); 00101 } 00102 00103 if (ev.isGUI()) 00104 { 00105 char buf[40]; 00106 sprintf(buf, "rcvd: %d pks\nsent: %d pks", numReceived, numSent); 00107 displayString().setTagArg("t",0,buf); 00108 } 00109 }
|
|
Reimplemented in UDPEchoApp. 00032 { 00033 // because of IPAddressResolver, we need to wait until interfaces are registered, 00034 // address auto-assignment takes place etc. 00035 if (stage!=3) 00036 return; 00037 00038 counter = 0; 00039 numSent = 0; 00040 numReceived = 0; 00041 WATCH(numSent); 00042 WATCH(numReceived); 00043 00044 localPort = par("local_port"); 00045 destPort = par("dest_port"); 00046 msgByteLength = par("message_length").longValue() / 8; // FIXME param should be in bytes instead 00047 00048 const char *destAddrs = par("dest_addresses"); 00049 cStringTokenizer tokenizer(destAddrs); 00050 const char *token; 00051 while ((token = tokenizer.nextToken())!=NULL) 00052 destAddresses.push_back(IPAddressResolver().resolve(token)); 00053 00054 if (destAddresses.empty()) 00055 return; 00056 00057 bindToPort(localPort); 00058 00059 cMessage *timer = new cMessage("sendTimer"); 00060 scheduleAt((double)par("message_freq"), timer); 00061 }
|
|
00052 {return 4;}
|
|
Reimplemented in UDPEchoApp. 00113 { 00114 EV << "Received packet: "; 00115 printPacket(msg); 00116 delete msg; 00117 00118 numReceived++; 00119 }
|
|
00081 { 00082 cMessage *payload = createPacket(); 00083 IPvXAddress destAddr = chooseDestAddr(); 00084 sendToUDP(payload, localPort, destAddr, destPort); 00085 00086 numSent++; 00087 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|