To manage a socket and its connection, ABL allows you to:
Test if the socket is connected — If the CONNECTED( ) socket method is TRUE, the socket is connected.
Control event sensitivity — At any time, you can make the socket stop receiving READ-RESPONSE events by setting its SENSITIVE attribute to FALSE. Also at any time, you can return it to receiving READ-RESPONSE events by setting SENSITIVE to TRUE.
Set socket options — ABL supports the following options:
TCP-NODELAY
SO-LINGER
SO-KEEPALIVE
SO-REUSEADDR
SO-SNDBUF
SO-RCVBUF
SO-RCVTIMEO
To set and get these options, use the SET-SOCKET-OPTION( ) and GET-SOCKET-OPTION( ) methods.
Obtain host and port values — You can obtain the remote host IP address and port number involved in the connection from the values of the REMOTE-HOST and REMOTE-PORT socket attributes. Similarly, you can obtain the local host and port from the LOCAL-HOST and LOCAL-PORT socket attributes.
Disconnect a socket — You can close the socket and remove the association between the socket object and its remote port by invoking the DISCONNECT( ) socket method. ABL automatically closes the local socket when ABL detects that the corresponding remote socket in a connection is closed.
Delete the socket object — You can delete a socket object using the DELETE OBJECT statement. However, you must disconnect the socket before you can delete it.
Caution: Note that you should also delete the SELF handle you used to read and write to the socket to avoid a memory leak.