Simple Module TCPGenericSrvApp

Package: inet.applications.tcpapp
File: src/applications/tcpapp/TCPGenericSrvApp.ned

C++ definition

Generic server application for modelling TCP-based request-reply style protocols or applications.

Requires message object preserving sendQueue/receiveQueue classes to be used with TCP (that is, TCPMsgBasedSendQueue and TCPMsgBasedRcvQueue; TCPVirtualBytesSendQueue/RcvQueue are not good).

The module accepts any number of incoming TCP connections, and expects to receive messages of class GenericAppMsg on them. A message should contain how large the reply should be (number of bytes). TCPGenericSrvApp will just change the length of the received message accordingly, and send back the same message object. The reply can be delayed by a constant time (replyDelay parameter).

Compatible with both IPv4 and IPv6.

See also: GenericAppMsg, TCPBasicClientApp, TelnetApp

TCPGenericSrvApp

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Parameters:

Name Type Default value Description
address string ""

local address; may be left empty ("")

port int 1000

port number to listen on

replyDelay double 0s

Properties:

Name Value Description
display i=block/app

Gates:

Name Direction Size Description
tcpIn input
tcpOut output

Source code:

//
// Generic server application for modelling TCP-based request-reply style
// protocols or applications.
//
// Requires message object preserving sendQueue/receiveQueue classes
// to be used with TCP (that is, TCPMsgBasedSendQueue and TCPMsgBasedRcvQueue;
// TCPVirtualBytesSendQueue/RcvQueue are not good).
//
// The module accepts any number of incoming \TCP connections, and expects
// to receive messages of class GenericAppMsg on them. A message should
// contain how large the reply should be (number of bytes). TCPGenericSrvApp
// will just change the length of the received message accordingly, and send
// back the same message object. The reply can be delayed by a constant time
// (replyDelay parameter).
//
// Compatible with both IPv4 and IPv6.
//
// @see GenericAppMsg, TCPBasicClientApp, TelnetApp
//
simple TCPGenericSrvApp like TCPApp
{
    parameters:
        string address = default(""); // local address; may be left empty ("")
        int port = default(1000);     // port number to listen on
        double replyDelay @unit("s") = default(0s);
        @display("i=block/app");
    gates:
        input tcpIn @labels(TCPCommand/up);
        output tcpOut @labels(TCPCommand/down);
}