INET Framework for OMNeT++/OMNEST
UDPAppBase Class Reference

#include <UDPAppBase.h>

Inheritance diagram for UDPAppBase:
UDPBasicApp UDPSink UDPVideoStreamCli UDPVideoStreamSvr UDPEchoApp

List of all members.

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)

Detailed Description

Contains a few utility functions as protected methods, for sending and receiving UDP packets.


Member Function Documentation

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");
}

The documentation for this class was generated from the following files: