Sockets allow your ABL application to interact with other applications built using any language and deployed on any network machine using a standard communications model. ABL sockets are integrated with the ABL event model so you can use a single mechanism to handle user-interface events, AppServer asynchronous request completion events, and socket events. Applications that lend themselves to socket communications with ABL include:
Alternative ABL mechanisms that allow socket access include the Host Language Call Interface (HLC) and shared library access described in this manual. However, ABL sockets provide a native ABL mechanism that is much easier to program and that is well-integrated with the ABL event model.
The ABL implementation provides low-level access to TCP/IP sockets. In ABL, a socket client and server each send and receive data as a stream of bytes, accessed as a
MEMPTR data type. The formatting of this data stream is entirely application dependent. You can marshal and unmarshal data streams according to your application requirements using the ABL statements and functions available to manipulate
MEMPTR data (see
Using MEMPTR to reference external data).