Receives raw data over TCP/IP. Produces a feature each time a specified number of bytes is received or a particular sequence is detected.
To transport data from one FME process to another: use the TCPIPSender transformer in the source FME workspace to send data to a TCPIPReceiver transformer in the receiving FME workspace.
Note: Can be used in conjunction with TCPIPSender.
To set up a feature stream between two FME workspaces using the TCPIPReceiver and TCPIPSender transformers:
- One workspace is the designated "establisher" of the transport stream. If there are multiple transport streams between workspaces, one workspace must be the establisher of all the streams, and the other will connect to those transport streams. This is regardless of whether the individual transporters are sending or receiving data.
- The establishing workspace must be started before the workspace that is connecting. A TCPIPReceiver/TCPIPSender cannot successfully connect to a transport stream that is not already established.
- For each transport channel, there must be a different port that is used for each server machine.
This transformer has no input ports.
Features containing the data that has been received are output through this port.
The Initiation Sequence specifies whether the transformer is responsible for establishing the connection (Establish), or connecting to an establishing host (Connect). If the TCPIPReceiver is used with a corresponding TCPIPSender, either the sender or receiver can be the establisher.
Note: The workspace that establishes the transfer mode must be running before the connecting workspace.
This parameter is only needed by the workspace with the Initiation Sequence parameter set to Connect. The TCPIPReceiver in Connect mode can connect to the specified host and listen for data. The establishing host can be another FME workspace, or any application or server that communicates over TCP/IP.
|Port or Service to Use||
Specify either a port number or a service (for example, http, ftp, telnet, imap, gopher, pop3, www, and smtp are services that are typically associated with well-known port numbers).
The default value is 8586.
|Continue Listening on Client Disconnect||
If this parameter is set to No, the TCPIPReceiver will only accept one connection to receive features from. Otherwise the TCPIPReceiver will accept new client connections if the current client has disconnected until the translation is stopped.
If this parameter is set to Fixed Data Length, then each feature output by the TCPIPReceiver will contain a maximum number of bytes, specified by the Data Length parameter. This method is intended for receiving data that always has a fixed length.
If this parameter is set to Receive Data Length from Sender, then the TCPIPReceiver will expect to receive the size of incoming data before the data payload, up to a maximum of 256KB per request. In this way, the value of Data Length is determined dynamically by the sender, rather than set at a fixed value by the receiver. If the sender transmits more than 256KB, then the output data will be divided into 256KB segments. If the TCPIPReceiver is used in conjunction with a TCPIPSender, then the TCPIPSender should have the Send Data Length attribute set to Yes. If this parameter is set to No, then the TCPIPReceiver processes all incoming transmissions as raw data.
If this parameter is set to Custom Delimiter, then the TCPIPReceiver will split received data into features using the specified Delimiter parameter, up to a maximum of 256KB per feature.
Specify the maximum number of bytes that the transformer receives before it outputs a feature. In the event that the connection is terminated, the transformer will output any remaining data. If -1 is entered as a value for this parameter, then the TCPIPReceiver will receive up to 256KB per request. Only used if Delimiting Method is set to Fixed Data Length.
Specify the string that separates the received data into segments. Each segment will become a separate feature. For example, if Delimiter was the string “__”, then the data “ABC__DEF__GHI” would be split into 3 features with Output Attribute values of “ABC”, “DEF”, and “GHI” respectively.
Name the attribute to contain the received data.
|Number of Bytes Received||
Name the attribute to contain the number of bytes received by the TCPIPReceiver.
Editing Transformer Parameters
Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.
There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.
Using the Text Editor
The Text Editor provides a convenient way to construct text strings (including regular expressions) from various data sources, such as attributes, parameters, and constants, where the result is used directly inside a parameter.
Using the Arithmetic Editor
The Arithmetic Editor provides a convenient way to construct math expressions from various data sources, such as attributes, parameters, and feature functions, where the result is used directly inside a parameter.
Set values depending on one or more test conditions that either pass or fail.
Parameter Condition Definition Dialog
Expressions and strings can include a number of functions, characters, parameters, and more.
When setting values - whether entered directly in a parameter or constructed using one of the editors - strings and expressions containing String, Math, Date/Time or FME Feature Functions will have those functions evaluated. Therefore, the names of these functions (in the form @<function_name>) should not be used as literal string values.
|These functions manipulate and format strings.|
|A set of control characters is available in the Text Editor.|
|Math functions are available in both editors.|
|Date/Time Functions||Date and time functions are available in the Text Editor.|
|These operators are available in the Arithmetic Editor.|
|These return primarily feature-specific values.|
|FME and workspace-specific parameters may be used.|
|Creating and Modifying User Parameters||Create your own editable parameters.|
Dialog Options - Tables
Transformers with table-style parameters have additional tools for populating and manipulating values.
Enabled once you have clicked on a row item. Choices include:
Cut, Copy, and Paste
Enabled once you have clicked on a row item. Choices include:
Cut, copy, and paste may be used within a transformer, or between transformers.
|Start typing a string, and the matrix will only display rows matching those characters. Searches all columns. This only affects the display of attributes within the transformer - it does not alter which attributes are output.|
|Import populates the table with a set of new attributes read from a dataset. Specific application varies between transformers.|
Generally resets the table to its initial state, and may provide additional options to remove invalid entries. Behavior varies between transformers.
Note: Not all tools are available in all transformers.
The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.
Search for samples and information about this transformer on the FME Community.