Protected Member Functions

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.

Definition at line 30 of file UDPAppBase.h.


Member Function Documentation

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


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