Simple Module TCPEchoApp

File: Applications/TCPApp/TCPEchoApp.ned

C++ definition: click here

Accepts any number of incoming TCP connections, and sends back the messages that arrive on them, The lengths of the messages are multiplied by echoFactor before sending them back (echoFactor=1 will result in sending back the same message unmodified.) The reply can also be delayed by a constant time (echoDelay parameter).

When TCPEchoApp receives data packets from TCP (and such, when they can be echoed) depends on the sendQueue/receiveQueue setting of TCP. With TCPVirtualBytesSendQueue/RcvQueue, TCP passes up data to us as soon as a segment arrives, so it can be echoed immediately. With TCPMsgBasedSendQueue/RcvQueue, our local TCP reproduces the same messages that the sender app passed down to its TCP -- so if the sender app sent a single 100 MB message, it will be echoed only when all 100 megabytes have arrived.

Compatible with both IPv4 and IPv6.

Usage diagram:

The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.

TCPEchoApp

Parameters:

Name Type Description
address string

local address; may be left empty ("")

port numeric const

port number to listen on

echoFactor numeric const
echoDelay numeric const

Gates:

Name Direction Description
tcpIn input
tcpOut output

Source code:

simple TCPEchoApp
    parameters:
        address: string, // local address; may be left empty ("")
        port: numeric const, // port number to listen on
        echoFactor: numeric const,
        echoDelay: numeric const;
    gates:
        in: tcpIn;
        out: tcpOut;
endsimple