Simple Module UDPVideoStreamCli

Package: inet.applications.udpapp
File: src/inet/applications/udpapp/UDPVideoStreamCli.ned

C++ definition

Video streaming client.

This module sends one "video streaming request" to serverAddress:serverPort at time startTime and receives stream from UDPVideoStreamSvr server.

Statistics:

rcvdPkBytes: statistic of received packets and received bytes. endToEndDelay: statistic of delays of incoming packets.

See also: UDPVideoStreamSvr

UDPVideoStreamCli

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.

Parameters:

Name Type Default value Description
localPort int -1

local port (-1: use ephemeral port)

serverAddress string

server address

serverPort int

server port

startTime double 1s

Properties:

Name Value Description
display i=block/app

Gates:

Name Direction Size Description
udpIn input
udpOut output

Signals:

Name Type Unit
rcvdPk cPacket

Statistics:

Name Title Source Record Unit Interpolation Mode
rcvdPk packets received rcvdPk count, sum(packetBytes), vector(packetBytes) none
throughput throughput throughput(rcvdPk) vector bps
endToEndDelay end-to-end delay messageAge(rcvdPk) histogram, vector s none

Source code:

//
// Video streaming client.
//
// This module sends one "video streaming request" to serverAddress:serverPort at time startTime
// and receives stream from ~UDPVideoStreamSvr server.
//
// Statistics:
//
// rcvdPkBytes: statistic of received packets and received bytes.
// endToEndDelay: statistic of delays of incoming packets.
//
// @see ~UDPVideoStreamSvr
//
simple UDPVideoStreamCli like IUDPApp
{
    parameters:
        int localPort = default(-1);  // local port (-1: use ephemeral port)
        string serverAddress;  // server address
        int serverPort;  // server port
        double startTime @unit(s) = default(1s);
        @display("i=block/app");
        @signal[rcvdPk](type=cPacket);
        @statistic[rcvdPk](title="packets received"; source=rcvdPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[throughput](title="throughput"; unit=bps; source="throughput(rcvdPk)"; record=vector);
        @statistic[endToEndDelay](title="end-to-end delay"; source="messageAge(rcvdPk)"; unit=s; record=histogram,vector; interpolationmode=none);
    gates:
        input udpIn @labels(UDPControlInfo/up);
        output udpOut @labels(UDPControlInfo/down);
}