©1995–2012, Fairlight Consulting
PayPal: View Cart PayPal: Add Fairlight Uniclient to cart
Uniclient Documentation

Current Version: v01.00.00

Released: 05/22/12

Program Summary

The Fairlight Universal TCP Client (Uniclient)  is designed to solve problems and reduce complexity in dealing with client-side communications from the filePro database application to external servers.  Instead of dealing with the complexity (and cost-per-socket) of fP Sockets, you pay one time for Uniclient, and use it in as many fashions and instances as necessary, with no socket license issues and a lot less programming complexity.  You use Uniclient with the USER functionality of filePro, and can specify the way the protocol is handled within filePro processing.  You don’t have commands, socket setup, etc.  You just have to tell filePro to start Uniclient with the correct host and port, and then it’s a matter of sending and receiving lines as necessary for whatever protocol you need to handle.

One advantage of Uniclient over some other clients is that nothing need be saved to disk.  Because you use it with USER, everything is done to STDIN and STDOUT.  This means it complies with standards that dictate you do not write transactional data to files on disk.

By way of example, this processing table will let you communicate with any client from inside filePro in realtime, via MSGBOX and INPUT POPUP  Mind you, this is just an example, and obviously most times you’d automate an entire protocol in processing:

clstart::user flclient = /usr/local/bin/uniclient -h smtp.iglou.com -p smtp:

:not flclient:msgbox "Client did not start correctly." ; delete ; exit:


:flclient and aa eq "FLUTC_REMOTE_CONNECTED":msgbox aa:

:flclient:aa=flclient ; msgbox aa:

loop:flclient:input popup bb "Text to send ":

:bb eq "":goto loop:

:bb eq "quit":msgbox "Quitting." ; close flclient; delete ; exit:

:not flclient:msgbox "Client exited prematurely." ; delete ; exit:


:not flclient:msgbox "Client exited prematurely." ; delete ; exit:

loop2:flclient:aa=flclient ; msgbox aa:

::goto loop:


One thing to note is that SSL is not natively supported by Uniclient.  However, you can use stunnel in client mode (or other alternative wrappers) to achieve this functionality for tasks like processing credit card transactions through gateways that use a proprietary protocol that includes SSL.  With the existence of stunnel and similar solutions, there was no need to add complexity to Uniclient when that can be handled by freely available software.

System Requirements

Uniclient requires Perl 5.6 or higher be installed on your system.

Supported Platforms

Currently supported platforms are:


Unpack the compressed tar archive into any directory you choose. A subdirectory named uniclient-files will be created, and the program file and the above sample processing table are present within this subdirectory.  Change directories into this directory, and copy uniclient to somewhere sensible in your path.  You may need to alter the first line of the program to reflect the location of your perl binary.  Make sure the program is set to mode 0755.


uniclient -h host -p port [options]

After invoking the client, you will simply send lines to the USER handle/alias, exactly as you want them sent to the remote service, and you will receive lines back from the client as given to you by the remote service.

Special Responses

There are four special responses that Uniclient will give back, other than client input:


This option dictates what host the client will connect to.

This option dictates what port the client will connect to.

This option dictates that the client should output an FLTUTC_LINES: N line before every line or set of lines received from the client.  This is to tell filePro how many lines to read in the case of protocols that may use multi-line responses, so you don’t end up hanging infinitely while trying to read from the client when no more data is forthcoming.

This option tells the client to log.  If --logfile is not also specified, logging is done to STDOUT, which is probably not what you want in most cases.

This option denotes the file into which logging is done.

This option returns the program version information.

This option returns the program changelog information.

This option returns the program help (a briefer summary of the options) in a self-paging fashion.


v01.00.00 - 05/22/12

Original Release.

Copyright, License, Warranty, and Payment

This software remains the property of Fairlight Consulting, and license to use the program is sold to users. Uniclient is licensed at a cost of $495.00 USD per server on which it is installed. Each license fee entitles you to use Uniclient on one server, in any role you require.

Upon receipt of payment for a license, program will be delivered to the licensee via email at the email address associated with the PayPal payment.

Upgrades for the product are currently free when moving to new minor and major versions. Fairlight Consulting reserves the right to change this policy in the future, with no prior warning.

There is no warranty for this software. This software is offered "AS-IS" and without warranties as to performance or merchantability or any other warranties, whether expressed or implied.

Good computing practice dictates that any program should be thoroughly tested with non-critical data before deploying it for production. The user assumes the entire risk of using the program. In no event shall Fairlight Consulting be held liable for loss of data, failure of performance, or any other damages, be they real or perceived.