TcpServerConnection

Package: inet.applications.tcpapp

TcpServerConnection

compound module

This module is a generic TCP server connection. The traffic source and traffic sink modules can be built from queueing model elements.

See also: TcpServerApp

source : like IActivePacketSource

ActivePacketSource: This module is an active packet source which pushes packets into the connected module.

IActivePacketSource: This module interface must be implemented by active packet source modules.

Source:
source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
    parameters:
        @display("p=200,150");
} tagger : like IPacketFlow

IPacketFlow: This module interface is implemented by packet flows.

Source:
tagger: <default("")> like IPacketFlow {
    parameters:
        @display("p=200,300");
} measurementStarter : like IPacketFlow

IPacketFlow: This module interface is implemented by packet flows.

Source:
measurementStarter: <default("")> like IPacketFlow {
    parameters:
        @display("p=200,450");
} sink : like IPassivePacketSink

PassivePacketSink: This module is a passive packet sink which is pushed with packets by the connected packet producer.

IPassivePacketSink: This module interface must be implemented by passive packet sink modules.

Source:
sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
    parameters:
        @display("p=500,150");
} measurementRecorder : like IPacketFlow

IPacketFlow: This module interface is implemented by packet flows.

Source:
measurementRecorder: <default("")> like IPacketFlow {
    parameters:
        @display("p=500,450");
} io : TcpServerSocketIo

This module provides TCP server socket handling for generic TCP applications.

Source:
io: TcpServerSocketIo {
    parameters:
        @display("p=150,300");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
TcpRequestResponseApp compound module

This module is a generic request/response based server application. For each request it receives, it generates a different traffic based on the data the request contains. The client application can be any source that is capable of generating packets with different data. The first byte of the packet data determines the response traffic, which can be configured to produce complex streams of packets with various data and timing distributions.

Properties

Name Value Description
application
display i=block/cogwheel

Gates

Name Direction Size Description
socketIn input
socketOut output

Source code

//
// This module is a generic TCP server connection. The traffic source and traffic
// sink modules can be built from queueing model elements.
//
// @see ~TcpServerApp
//
module TcpServerConnection like IApp
{
    parameters:
        @application;
        @display("i=block/cogwheel");
    gates:
        input socketIn;
        output socketOut;
    submodules:
        source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
            parameters:
                @display("p=200,150");
        }
        tagger: <default("")> like IPacketFlow {
            parameters:
                @display("p=200,300");
        }
        measurementStarter: <default("")> like IPacketFlow {
            parameters:
                @display("p=200,450");
        }
        sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
            parameters:
                @display("p=500,150");
        }
        measurementRecorder: <default("")> like IPacketFlow {
            parameters:
                @display("p=500,450");
        }
        io: TcpServerSocketIo {
            parameters:
                @display("p=150,300");
        }
    connections allowunconnected:
        source.out --> tagger.in if exists(source);
        tagger.out --> measurementStarter.in;
        measurementStarter.out --> io.trafficIn;
        io.socketOut --> socketOut;

        socketIn --> io.socketIn;
        io.trafficOut --> measurementRecorder.in;
        measurementRecorder.out --> sink.in if exists(sink);
}
File: src/inet/applications/tcpapp/TcpServerConnection.ned