#include <UDPAppBase.h>
Inheritance diagram for UDPAppBase:
Protected Member Functions | |
virtual void | bindToPort (int port) |
virtual void | sendToUDP (cMessage *msg, int srcPort, const IPvXAddress &destAddr, int destPort) |
virtual void | printPacket (cMessage *msg) |
|
Tells UDP we want to get all packets arriving on the given port 00026 { 00027 EV << "Binding to UDP port " << port << endl; 00028 00029 // TODO UDPAppBase should be ported to use UDPSocket sometime, but for now 00030 // we just manage the UDP socket by hand... 00031 cMessage *msg = new cMessage("UDP_C_BIND", UDP_C_BIND); 00032 UDPControlInfo *ctrl = new UDPControlInfo(); 00033 ctrl->setSrcPort(port); 00034 ctrl->setSockId(UDPSocket::generateSocketId()); 00035 msg->setControlInfo(ctrl); 00036 send(msg, "to_udp"); 00037 }
|
|
Prints a brief about packets having an attached UDPControlInfo (i.e. those which just arrived from UDP, or about to be send to UDP). 00057 { 00058 UDPControlInfo *ctrl = check_and_cast<UDPControlInfo *>(msg->controlInfo()); 00059 00060 IPvXAddress srcAddr = ctrl->srcAddr(); 00061 IPvXAddress destAddr = ctrl->destAddr(); 00062 int srcPort = ctrl->srcPort(); 00063 int destPort = ctrl->destPort(); 00064 00065 ev << msg << " (" << msg->byteLength() << " bytes)" << endl; 00066 ev << srcAddr << " :" << srcPort << " --> " << destAddr << ":" << destPort << endl; 00067 }
|
|
Sends a packet over UDP 00040 { 00041 // send message to UDP, with the appropriate control info attached 00042 msg->setKind(UDP_C_DATA); 00043 00044 UDPControlInfo *ctrl = new UDPControlInfo(); 00045 ctrl->setSrcPort(srcPort); 00046 ctrl->setDestAddr(destAddr); 00047 ctrl->setDestPort(destPort); 00048 msg->setControlInfo(ctrl); 00049 00050 EV << "Sending packet: "; 00051 printPacket(msg); 00052 00053 send(msg, "to_udp"); 00054 }
|