Package: inet.applications.tcpapp
TcpClientApp
compound moduleA generic, very modular TCP client application, similar to ~TcpServerApp. The traffic source and traffic sink modules can be built from queueing model elements.
<b>See also:</b> ~TcpServerApp
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.
Properties
| Name | Value | Description |
|---|---|---|
| application | ||
| display | i=block/app |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| socketIn | input | ||
| socketOut | output |
Unassigned submodule parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| io.displayStringTextFormat | string | "" |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
| io.localAddress | string | "" | |
| io.localPort | int | -1 | |
| io.connectAddress | string | ||
| io.connectPort | int | ||
| io.autoRead | bool | true |
Whether to use "autoread" or "explicit-read" mode for TCP connection |
| io.readSize | int | -1B |
Used only with autoRead==false |
| io.readDelay | double | -1s |
Used only with autoRead==false; delay for issuing a READ command after the previous READ was satisfied; -1 means immediately, 0 means zero delay |
Source code
// // A generic, very modular TCP client application, similar to // ~TcpServerApp. The traffic source and traffic sink modules can be built from // queueing model elements. // // @see ~TcpServerApp // module TcpClientApp like IApp { parameters: @application; @display("i=block/app"); 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: TcpClientSocketIo { parameters: @display("p=350,600"); } 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/TcpClientApp.ned