#include <UDPAppBase.h>
Protected Member Functions | |
virtual void | bindToPort (int port) |
virtual void | sendToUDP (cPacket *msg, int srcPort, const IPvXAddress &destAddr, int destPort) |
virtual void | printPacket (cPacket *msg) |
Contains a few utility functions as protected methods, for sending and receiving UDP packets.
Definition at line 30 of file UDPAppBase.h.
void UDPAppBase::bindToPort | ( | int | port | ) | [protected, virtual] |
Tells UDP we want to get all packets arriving on the given port
Definition at line 24 of file UDPAppBase.cc.
Referenced by UDPVideoStreamSvr::initialize(), UDPSink::initialize(), UDPBasicApp::initialize(), and UDPVideoStreamCli::requestStream().
{ EV << "Binding to UDP port " << port << endl; // TODO UDPAppBase should be ported to use UDPSocket sometime, but for now // we just manage the UDP socket by hand... cMessage *msg = new cMessage("UDP_C_BIND", UDP_C_BIND); UDPControlInfo *ctrl = new UDPControlInfo(); ctrl->setSrcPort(port); ctrl->setSockId(UDPSocket::generateSocketId()); msg->setControlInfo(ctrl); send(msg, "udpOut"); }
void UDPAppBase::printPacket | ( | cPacket * | msg | ) | [protected, virtual] |
Prints a brief about packets having an attached UDPControlInfo (i.e. those which just arrived from UDP, or about to be send to UDP).
Definition at line 55 of file UDPAppBase.cc.
Referenced by UDPSink::processPacket(), UDPBasicApp::processPacket(), UDPVideoStreamCli::receiveStream(), and sendToUDP().
{ UDPControlInfo *ctrl = check_and_cast<UDPControlInfo *>(msg->getControlInfo()); IPvXAddress srcAddr = ctrl->getSrcAddr(); IPvXAddress destAddr = ctrl->getDestAddr(); int srcPort = ctrl->getSrcPort(); int destPort = ctrl->getDestPort(); ev << msg << " (" << msg->getByteLength() << " bytes)" << endl; ev << srcAddr << " :" << srcPort << " --> " << destAddr << ":" << destPort << endl; }
void UDPAppBase::sendToUDP | ( | cPacket * | msg, | |
int | srcPort, | |||
const IPvXAddress & | destAddr, | |||
int | destPort | |||
) | [protected, virtual] |
Sends a packet over UDP
Definition at line 38 of file UDPAppBase.cc.
Referenced by UDPVideoStreamCli::requestStream(), UDPBasicApp::sendPacket(), and UDPVideoStreamSvr::sendStreamData().
{ // send message to UDP, with the appropriate control info attached msg->setKind(UDP_C_DATA); UDPControlInfo *ctrl = new UDPControlInfo(); ctrl->setSrcPort(srcPort); ctrl->setDestAddr(destAddr); ctrl->setDestPort(destPort); msg->setControlInfo(ctrl); EV << "Sending packet: "; printPacket(msg); send(msg, "udpOut"); }