IPWorks P2P 2020 Kotlin Edition

Questions / Feedback?

Rudpclient Configuration

The component accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the component, access to these internal properties is provided through the Config method.

RUDPClient Configuration Settings

CloseStreamAfterTransfer:   If true, the component will close the upload or download stream after the transfer.

This setting determines whether the input or output stream is closed after the transfer completes. When set to True (default), all streams will be closed after a transfer is completed. In order to keep streams open after the transfer of data, set this to False. the default value is True.

KeepAliveInterval:   The retry interval, in seconds, to be used when a keep-alive packet is sent and no response is received.

A keep-alive packet will be sent after a period of inactivity as defined by KeepAliveTime. If no acknowledgement is received from the remote host the keep-alive packet will be re-sent. This setting specifies the interval at which the successive keep-alive packets are sent in seconds. The default value is 1.

This setting is only applicable when KeepAlive is True.

KeepAliveRetryCount:   The number of times to retry sending the keep-alive packet when there is no response.

When sending a keep-alive packet if no response is received the component will retransmit the packet up to the number of time defined by this setting. If there is still no response after the last retry the component throws an exception. The default value is 5.

This setting is only applicable when KeepAlive is True.

KeepAliveTime:   The inactivity time in seconds before a keep-alive packet is sent.

This setting defines the the inactivity period before a keep-alive packet is sent. The value is specified in seconds. The default value is 7200 (2 hours).

This setting is only applicable when KeepAlive is True.

LogOptions:   The level of messages to log.

This setting specifies the level of messages to log through the Status event. Possible values are:

0 (default) No additional logging is enabled
1 PITrail information (client and server communication)
2 Debug information
3 PITrail and Debug information

MaxIncomingOutstandingCount:   The maximum number of outstanding segments.

This setting defines the maximum number of unacknowledged segments that the other side should allow when sending to this instance. If the sender is sending data to this instance and reaches this number of unacknowledged segments it should stop sending data at that time.

The default value is 8.

MaxIncomingSegmentSize:   The maximum segment size in bytes.

This specifies the maximum segment size in bytes that can be received in a single segment by this component. This is sent to the other side when the connection is established. It is used by the other side to make sure it does not send segments to this instance which are larger than the size specified here.

The default value is 1056 (1024 + the default header size of 32).

MaxOutgoingOutstandingCount:   The maximum number of outstanding segments when sending to other party.

This setting may be queried after establishing a connection to determine the maximum allowable number of unacknowledged segments when sending to the other side. This is informational only. When sending the component will automatically check the number of unacknowledged packets and determine if it must stop sending data. See DataToSend for further details.

MaxOutgoingSegmentSize:   The maximum segment size of the other party in bytes.

This setting may be queried after establishing a connection to determine the maximum segment size the other party will accept. When sending data larger than this value it will automatically be split into multiple segments.

MaxRetransmitCount:   The maximum number of retransmission attempts.

When sending a segment if the packet is not acknowledged the component will retransmit the segment up to the number of times specified by this setting. If the segment is still not acknowledged the component throws an exception. The default value is 60.

This may be used in conjunction with RetransmitTimeout to control retransmission behavior.

RetransmitTimeout:   The timeout in milliseconds between retransmit attempts.

When sending a segment if the packet is not acknowledged the component will retransmit the segment after the timeout defined in this setting expires. The timeout is specified in milliseconds. The default value is 1000.

This may be used in conjunction with MaxRetransmitCount to control retransmission behavior.

SequencedDelivery:   Whether the connection uses sequenced delivery.

This setting specifies whether the connection will use sequenced delivery. This must be set before connecting. The default value is True.

UseWorkerThread:   Whether to use a background thread to process outstanding operations.

This setting specifies whether a background thread is used to process oustanding operations. When set to True (default) the component will use a background thread to manage packet retransmission and keep-alives. If set to False, call DoEvents in a loop to process any outstanding operations.

UDPPort Configuration Settings

CaptureIPPacketInfo:   Used to capture the packet information.

If this is set to true, the component will capture the IP packet information.

The default value for this setting is False.

Note: This setting is only available in Windows.

DestinationAddress:   Used to get the destination address from the packet information.

If CaptureIPPacketInfo is set to true, then this will be populated with the packet's destination address when a packet is received. This information will be accessible in the DataIn event.

Note: This setting is only available in Windows.

DontFragment:   Used to set the Don't Fragment flag of outgoing packets.

When set to True, packets sent by the component will have the Don't Fragment flag set. The default value is False.

LocalHost:   The name of the local host through which connections are initiated or accepted.

The LocalHost setting contains the name of the local host as obtained by the gethostname() system call, or if the user has assigned an IP address, the value of that address.

In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the component initiate connections (or accept in the case of server components) only through that interface.

If the component is connected, the LocalHost setting shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multi-homed hosts (machines with more than one IP interface).

LocalPort:   The port in the local host where the component binds.

This must be set before a connection is attempted. It instructs the component to bind to a specific port (or communication endpoint) in the local machine.

Setting this to 0 (default) enables the system to choose a port at random. The chosen port will be shown by LocalPort after the connection is established.

LocalPort cannot be changed once a connection is made. Any attempt to set this when a connection is active will generate an error.

This; setting is useful when trying to connect to services that require a trusted port in the client side. An example is the remote shell (rsh) service in UNIX systems.

MaxPacketSize:   The maximum length of the packets that can be received.

This setting specifies the maximum size of the datagrams that the component will accept without truncation.

QOSDSCPValue:   Used to specify an arbitrary QOS/DSCP setting (optional).

UseConnection must be True to use this setting. This option allows you to specify an arbitrary DSCP value between 0 and 63. The default is 0. When set to the default value the component will not set a DSCP value.

Note: This setting uses the qWAVE API is only available on Windows 7, Windows Server 2008 R2, and later.

QOSTrafficType:   Used to specify QOS/DSCP settings (optional).

UseConnection must be True to use this setting. You may specify either the text or integer values: BestEffort (0), Background (1), ExcellentEffort (2), AudioVideo (3), Voice (4), and Control (5).

Note: This setting uses the qWAVE API which is only available on Windows Vista and Windows Server 2008 or above.

Note: QOSTrafficType must be set before setting Active to true.

ShareLocalPort:   If set to True, allows more than one instance of the component to be active on the same local port.

This option must be set before the component is activated through the Active property or it will have no effect.

The default value for this setting is False.

UseConnection:   Determines whether to use a connected socket.

UseConnection specifies whether the component should use a connected socket or not. The connection is defined as an association in between the local address/port and the remote address/port. As such, this is not a connection in the traditional TCP sense. What it means is only that the component will send and receive data only to and from the specified destination.

The default value for this setting is False.

UseIPv6:   Whether or not to use IPv6.

By default, the component expects an IPv4 address for local and remote host properties, and will create an IPv4 socket. To use IPv6 instead, set this to True.

Socket Configuration Settings

AbsoluteTimeout:   Determines whether timeouts are inactivity timeouts or absolute timeouts.

If AbsoluteTimeout is set to True, any method which does not complete within Timeout seconds will be aborted. By default, AbsoluteTimeout is False, and the timeout is an inactivity timeout.

Note: This option is not valid for UDP ports.

FirewallData:   Used to send extra data to the firewall.

When the firewall is a tunneling proxy, use this property to send custom (additional) headers to the firewall (e.g. headers for custom authentication schemes).

InBufferSize:   The size in bytes of the incoming queue of the socket.

This is the size of an internal queue in the TCP/IP stack. You can increase or decrease its size depending on the amount of data that you will be receiving. Increasing the value of the InBufferSize setting can provide significant improvements in performance in some cases.

Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the component is activated the InBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small.

OutBufferSize:   The size in bytes of the outgoing queue of the socket.

This is the size of an internal queue in the TCP/IP stack. You can increase or decrease its size depending on the amount of data that you will be sending. Increasing the value of the OutBufferSize setting can provide significant improvements in performance in some cases.

Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the component is activated the OutBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small.

Base Configuration Settings

BuildInfo:   Information about the product's build.

When queried, this setting will return a string containing information about the product's build.

GUIAvailable:   Tells the component whether or not a message loop is available for processing events.

In a GUI-based application, long-running blocking operations may cause the application to stop responding to input until the operation returns. The component will attempt to discover whether or not the application has a message loop and, if one is discovered, it will process events in that message loop during any such blocking operation.

In some non-GUI applications an invalid message loop may be discovered that will result in errant behavior. In these cases, setting GUIAvailable to false will ensure that the component does not attempt to process external events.

LicenseInfo:   Information about the current license.

When queried, this setting will return a string containing information about the license this instance of a component is using. It will return the following information:

  • Product: The product the license is for.
  • Product Key: The key the license was generated from.
  • License Source: Where the license was found (e.g. RuntimeLicense, License File).
  • License Type: The type of license installed (e.g. Royalty Free, Single Server).
UseDaemonThreads:   Whether threads created by the component are daemon threads.

If set to True (default), when the component creates a thread the thread's Daemon property will be explicitly set to True. When set to False the component will not set the Daemon property on the created thread. The default value is True.

UseInternalSecurityAPI:   Tells the component whether or not to use the system security libraries or an internal implementation.

By default the component will use the system security libraries to perform cryptographic functions. Setting this to True tells the component to use the internal implementation instead of using the system's security API.

Copyright (c) 2021 /n software inc. - All rights reserved.
IPWorks P2P 2020 Kotlin Edition - Version 20.0 [Build 7941]