From TouchDesigner 088 Wiki


The TCP/IP DAT is used for sending and receiving information over a TCP/IP connection between two remotely located computers. It captures all the messages without any queuing or buffering, and allows you to send it any messages you want.

Send messages using the tcpipDAT_Class. Handle received messages using the callback DAT attached to the TCP/IP DAT. See Network Protocols.

This DAT can be used to intercept all the raw information being sent from a Pipe Out CHOP for example. The Pipe In CHOP and Pipe Out CHOP also communicate through a TCP/IP connection, though they use a specific syntax.

See also UDP In DAT, UDP Out DAT.

For Tscript. see send Command.

PythonIcon.png tcpipDAT_Class

Parameters - Connect Page

Connection Mode mode - Specify if this operator is communicating as a client or a server.

Network Address address - If this node is communicating as a client, this should be the IP address of the server.

Port port - The network port to listen on or connect to, depending on of the node is the server or client respectively.

Table Format format - determines how the incoming data is parsed into the table.

  • One Row Per Byte - One row is added to the table per byte received.
  • One Row Per Line - One row is added to the table per line received. The end of a line is delimited by \n, \r or a null character (\0).
    Note: In this format messages will not be logged until one of those characters are received.
  • One Row Per Message - One row is added to the table per message received. Since TCP/IP is a stream-based protocol, the end of a 'message' is arbitrary. It is simply the contents of the last read operation from the socket. If you are reading a custom message format, you'll likely need to build up a full message from multiple reads from the socket in Python.

Active active - This check box enables the connection.

Parameters - Received Messages Page

Script DAT script - the Script DAT will execute once for each message coming in. The first argument ($arg1) is the message, the second argument ($arg2) is the line number (index starting at 0) in the DAT of the message.

Execute From executeloc - Determines the location the script is run from.

  • Current Node current - The script is executed from the current node location (for example, where 'cc' points to).
  • Script DAT script - The script is executed from the location of the DAT specified in the Script DAT parameter.
  • Specified Operator op - The script is executed from the operator specified in the From Operator parameter below.

From Operator fromop - The operator whose state change will trigger the DAT to execute its script when Execute is set to Specified Operator. This operator is also the path that the script will be executed from if the Execute From parameter is set to Specified Operator.

Clamp Output clamp - The DAT is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.

Maximum Lines maxlines - Limits the number of messages, older messages are removed from the list first.

Clear Output clear - Deletes all lines except the heading. To clear with a python script op("opname").par.clear.pulse()

Keep First Row firstrow - Keeps first row in table.

Bytes Column bytes - Outputs the raw bytes of the message in a separate column.