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