#include <TCPSinkApp.h>
Protected Member Functions | |
virtual void | initialize () |
virtual void | handleMessage (cMessage *msg) |
virtual void | finish () |
Protected Attributes | |
long | bytesRcvd |
Accepts any number of incoming connections, and discards whatever arrives on them.
Definition at line 26 of file TCPSinkApp.h.
void TCPSinkApp::finish | ( | ) | [protected, virtual] |
Definition at line 63 of file TCPSinkApp.cc.
{ recordScalar("bytesRcvd", bytesRcvd); }
void TCPSinkApp::handleMessage | ( | cMessage * | msg | ) | [protected, virtual] |
Definition at line 36 of file TCPSinkApp.cc.
{ if (msg->getKind()==TCP_I_PEER_CLOSED) { // we close too msg->setKind(TCP_C_CLOSE); send(msg, "tcpOut"); } else if (msg->getKind()==TCP_I_DATA || msg->getKind()==TCP_I_URGENT_DATA) { bytesRcvd += PK(msg)->getByteLength(); delete msg; if (ev.isGUI()) { char buf[32]; sprintf(buf, "rcvd: %ld bytes", bytesRcvd); getDisplayString().setTagArg("t",0,buf); } } else { // must be data or some kind of indication -- can be dropped delete msg; } }
void TCPSinkApp::initialize | ( | ) | [protected, virtual] |
Definition at line 22 of file TCPSinkApp.cc.
{ const char *address = par("address"); int port = par("port"); bytesRcvd = 0; WATCH(bytesRcvd); TCPSocket socket; socket.setOutputGate(gate("tcpOut")); socket.bind(address[0] ? IPvXAddress(address) : IPvXAddress(), port); socket.listen(); }
long TCPSinkApp::bytesRcvd [protected] |
Definition at line 29 of file TCPSinkApp.h.
Referenced by finish(), handleMessage(), and initialize().