TCP/IP client and server support (OMTCP)

The OMTCP library is a set of functions that allow TCP connections to and from other processes and machines.

The library consists of the following files:

  • "omtcp.dll" (Windows) or "omtcp.so" (UNIX) -- the dynamic link library file that creates the required opaque data types and contains the functions used to manipulate them.
  • "omtcp.xmd" -- the OmniMark module file that contains the opaque data type definitions, the function declarations, and the required predefined variables.

The OMTCP functions and opaque data types

Among other things, OMTCP allows you to:

The functions in this library use the following opaque data types:

  • tcp.connection - allows you to create a connection to a remote machine
  • tcp.service - allows you to accept TCP connections from remote client machines

Usage Notes

External exceptions TCP15, TCP16 and TCP17 can be thrown by any OMTCP library function.

Note: The functions in this library generate exceptions, unlike the functions in OMTCP legacy, OmniMark versions 4 - 6.0.1.

OMTCP Generated Exceptions

This is a complete list of the OMTCP library external exceptions that may be thrown back to the calling OmniMark program. These are all catchable using the #external-exception label.

  TCP01	Unable to resolve the given destination address: %s
  TCP02	Wait operation failed: %s
  TCP03	Minimum (%d) and maximum (%d) must be >= -1 with max > min
  TCP04	TCP object already has a derived source
  TCP05	TCP socket is not connected
  TCP06	Write operation timed out
  TCP07	Read operation timed out
  TCP08	Unable to connect to destination %s
  TCP09	Failed to create service port %d
  TCP10	Failed to accept incoming connection: %s
  TCP11	Error while reading from connection: %s
  TCP12	Error while writing to connection: %s
  TCP13	Invalid packet size %d received for packet-based protocol
  TCP14	Specified port %d is out of range (0 to 65535)
  TCP15	Internal error, contact customer support!
  TCP16	Out of memory
  TCP17	Unable to create thread
  TCP19	Specified IO protocol is unsupported
  TCP20	TCP object already has a derived sink
  TCP21	An error has already occurred on this TCP object
  TCP22	Only one of port or socket may be specified
  TCP23	Invalid queue length %d. Range is 1 to 1024
  TCP24	Invalid socket descriptor %d, which is less than 0
  TCP25	Value is out of range