#include <UDPEchoApp.h>
Inheritance diagram for UDPEchoApp:
Protected Member Functions | |
virtual cMessage * | createPacket () |
virtual void | processPacket (cMessage *msg) |
virtual void | initialize (int stage) |
virtual void | finish () |
|
Reimplemented from UDPBasicApp. 00043 { 00044 char msgName[32]; 00045 sprintf(msgName,"UDPEcho-%d", counter++); 00046 00047 cMessage *message = new UDPEchoAppMsg(msgName); 00048 message->setByteLength(msgByteLength); 00049 00050 return message; 00051 }
|
|
00039 { 00040 }
|
|
Reimplemented from UDPBasicApp. 00029 { 00030 UDPBasicApp::initialize(stage); 00031 00032 // because of IPAddressResolver, we need to wait until interfaces are registered, 00033 // address auto-assignment takes place etc. 00034 if (stage!=3) 00035 return; 00036 }
|
|
Reimplemented from UDPBasicApp. 00054 { 00055 UDPEchoAppMsg *packet = check_and_cast<UDPEchoAppMsg *>(msg); 00056 00057 if (packet->isRequest()) 00058 { 00059 UDPControlInfo *controlInfo = check_and_cast<UDPControlInfo *>(packet->controlInfo()); 00060 00061 // swap src and dest 00062 IPvXAddress srcAddr = controlInfo->srcAddr(); 00063 int srcPort = controlInfo->srcPort(); 00064 controlInfo->setSrcAddr(controlInfo->destAddr()); 00065 controlInfo->setSrcPort(controlInfo->destPort()); 00066 controlInfo->setDestAddr(srcAddr); 00067 controlInfo->setDestPort(srcPort); 00068 00069 packet->setIsRequest(false); 00070 send(packet, "to_udp"); 00071 } 00072 else 00073 { 00074 simtime_t rtt = simTime() - packet->creationTime(); 00075 EV << "RTT: " << rtt << "\n"; 00076 delete msg; 00077 } 00078 numReceived++; 00079 }
|