Sample code for 30+ languages & platforms
Visual FoxPro

Wait for a Socket to Become Writable

See more Socket/SSL/TLS Examples

Demonstrates Socket.SelectForWriting, which waits for the socket, or sockets in a socket set, to become writable. It returns 1 if writable, 0 on timeout, or -1 on error.

Background. A timeoutMs of 0 performs a nonblocking poll. This is useful before attempting to send when the peer may be applying flow control.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSocket
LOCAL lnBTls
LOCAL lnMaxWaitMs
LOCAL lnReady

lnSuccess = 0

loSocket = CreateObject('Chilkat.Socket')

*  Connect to the server using TLS.
lnBTls = 1
lnMaxWaitMs = 5000
lnSuccess = loSocket.Connect("example.com",5000,lnBTls,lnMaxWaitMs)
IF (lnSuccess = 0) THEN
    ? loSocket.LastErrorText
    RELEASE loSocket
    CANCEL
ENDIF

*  Wait up to 5 seconds for the socket (or sockets in a socket set) to become writable.  Returns 1 if
*  writable, 0 on timeout, or -1 on error.
lnReady = loSocket.SelectForWriting(5000)
IF (lnReady < 0) THEN
    ? loSocket.LastErrorText
    RELEASE loSocket
    CANCEL
ENDIF

IF (lnReady <> 1) THEN
    ? "The socket did not become writable before the timeout."
    RELEASE loSocket
    CANCEL
ENDIF

? "The socket is ready for writing."

RELEASE loSocket