Each application can act as the server or client in a TCP socket connection with some user-defined TCP server/client. The host and port of the TCP server are configured in the Application Properties. If the application is a server, the server is started when the application is started unless already running. If the application is a client, a connection is made when the application is started and there is not already a connection. An established connection remains open and a started server remains running but can be explicitly shut down with Shut Down Socket.
There is a Socket Input and a Socket Output for each primitive data type. Socket Inputs are assigned when a TCP message with a matching identifier is received. The .msg attribute of a Socket Input is true if it has been assigned since the previous scan cycle and can be used for message detection. If no identifier has been specified, the local name of the Socket Input/Output is used instead. If several inputs have the same identifier they will all be updated.
The protocol used for the TCP messages is: <identifier> '|' <value> '\n'
For Socket Outputs a TCP message is sent on assignments according to its Socket Send Mode. This can be set per workspace and per Socket Output.