%SS_SELECT
WSupported on Windows
|
USupported on Unix
|
VSupported on OpenVMS
|
NSupported in Synergy .NET
|
status = %SS_SELECT(socket, seconds, microseconds)
Return value
status
Returns SS_SUCCESS (0) or one of the errors in Error codes returned by %SS_SELECT below. (n)
Arguments
socket
A descriptor of an open socket created by %SS_SOCKET. (i4)
seconds
The number of seconds to wait for data to arrive on the socket. (n)
microseconds
The number of microseconds to wait for data to arrive on the socket. (n)
Discussion
Because it is virtually impossible to know when a message is going to be sent or how long it is going to be, you can use %SS_SELECT to wait for data to arrive on the specified socket or for the specified time to expire. If data is already available, %SS_SELECT returns immediately. If the specified time elapses before the message arrives, %SS_SELECT returns control to the calling program so that other computations may be performed before checking again to see if the message has arrived.
Seconds and microseconds can be used together to indicate traditional time. For example, if you want to wait 10.234 seconds, the seconds argument would be 10 and the microseconds argument would be 234000.
If a socket is lost while waiting for a packet, %SS_SELECT returns immediately but does not indicate that an error has occurred. See Handling lost sockets for more information.
If %SS_SELECT returns -1 and %SYSERR has SS_EINTR, retry the operation.
Error codes returned by %SS_SELECT
See the Socket Errors table for additional information about these errors.
SS_EBADF
SS_EINTR
SS_ENETDOWN
SS_ENOBUFS
SS_ENOTCONN
SS_ENOTSOCK
SS_ETIMEDOUT
SS_EUNKNOWN
SS_NOTINITIALISED