TCP transport configuration
TCP transports support the configuration options shown below in addition to the configurations and callbacks described above. Option settings are transferred directly to the underlying TCP implementation (for example, SCI) with no interpretation. Refer to the relevant transport mechanism documentation for descriptions of the valid option values and their meanings.
You must have loopback enabled to use the TCP transport with SST. You can successfully ping the address 127.0.0.1 if loopback is enabled.
defaultPort
Sets the default port to be used by local endpoints when a port is not specified. The provided tcp and ctcp configurations have their defaultPort set to 0, which will cause a random port to be assigned by the TCP stack.
keepAlive
Corresponds to the SO_KEEPALIVE socket option, which will cause an occasional ping packet to be sent on connections. This is a coarse-grained operation, affecting all sockets used by that particular instance of the transport. The value may be set to nil.
listenBacklog
In TCP terms, provides the argument to listen(2), the number of incoming connections to be queued pending being accepted. Its value is meaningless if allowIncomingConnections is false.
noDelay
Corresponds to the TCP_NODELAY socket option, which toggles whether the Nagle algorithm should be used. This is a coarse-grained operation, affecting all sockets used by that particular instance of the transport. The value may be set to nil.
nonBlocking
Corresponds to the FIONBIO input/output control (ioctl), which specifies whether operations should be blocking (if false) or non-blocking. This is a coarse-grained operation, affecting all sockets used by that particular instance of the transport. The value may be set to nil.
receiveBufferSize
Corresponds to the SO_RCVBUF socket option, allows specifying the size of the sockets' receive buffers. This is a coarse-grained operation, affecting all sockets used by that particular instance of the transport. The value may be set to nil.
receiveTimeout:
Corresponds to the SO_RCVTIMEO socket option, allows specifying the number of milliseconds that transports should allow to pass before failing a blocking receive call. The value may be set to nil.
reuseAddress
Corresponds to the SO_REUSEADDR socket option, which toggles whether ports can be reused immediately. This is a coarse-grained operation, affecting all sockets used by that particular instance of the transport. The value may be set to nil.
sendBufferSize
Corresponds to the SO_SNDBUF socket option, allows specifying the size of the sockets' send buffers. This is a coarse-grained operation, affecting all sockets used by that particular instance of the transport. The value may be set to nil.
sendTimeout:
Corresponds to the SO_SNDTIMEO socket option, allows specifying the number of milliseconds that transports should allow to pass before failing a blocking send call. The value may be set to nil.
Configurations can be applied either when a transport is initialized or dynamically. To apply a configuration dynamically, the configuration should be passed to the endpoint's configure: method.
All non-nil settings are applied immediately. The options which can have nil values have different semantics depending on when they are applied. If set to nil at the start, the default settings of the stack are used. Setting an option to nil after startup ensures that subsequent configure: operations will not alter the current setting of the option in the TCP stack.
Last modified date: 04/20/2020