INET Framework for OMNeT++/OMNEST
|
#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.
void UDPAppBase::bindToPort | ( | int | port | ) | [protected, virtual] |
Tells UDP we want to get all packets arriving on the given port
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).
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
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"); }