Visual FoxPro
Visual FoxPro
Socket Receive String Until Specific Byte Value is Received
Demonstrates the Chilkat Socket ReceiveStringUntilByte method.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSock
LOCAL lnUseTls
LOCAL lnPort
LOCAL lnMaxWaitMs
LOCAL lnLookForByte
LOCAL lcS1
LOCAL lcS2
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loSock = CreateObject('Chilkat.Socket')
* --------------------------------------------------------------------
* This example uses the public TCP echo service at https://tcpbin.com/
* --------------------------------------------------------------------
lnUseTls = 0
lnPort = 4242
lnMaxWaitMs = 5000
lnSuccess = loSock.Connect("tcpbin.com",lnPort,lnUseTls,lnMaxWaitMs)
IF (lnSuccess = 0) THEN
? loSock.LastErrorText
RELEASE loSock
CANCEL
ENDIF
* Wait a max of 2 seconds for a response..
loSock.MaxReadIdleMs = 2000
* Send some strings, each terminated by a 0 byte.
loSock.SendString("This is the 1st string")
loSock.SendByte(0)
loSock.SendString("This is string number 2")
loSock.SendByte(0)
* The tcpbin.com echo server only echoes after receiving an LF (linefeed char)
loSock.SendByte(10)
* Now let's receive what is echoed back....
* Receive each string and the NULL byte.
* The call to ReceiveStringUntilByte will receive incoming data until the lookForByte is encountered.
* The lookForByte is receive and discarded (it is not returned in the string)
lnLookForByte = 0
lcS1 = loSock.ReceiveStringUntilByte(lnLookForByte)
IF (loSock.LastMethodSuccess = 0) THEN
? loSock.LastErrorText
RELEASE loSock
CANCEL
ENDIF
? lcS1
lcS2 = loSock.ReceiveStringUntilByte(lnLookForByte)
IF (loSock.LastMethodSuccess = 0) THEN
? loSock.LastErrorText
RELEASE loSock
CANCEL
ENDIF
? lcS2
* The echo server will also echo back the final LF
loSock.ReceiveByte(1)
lnMaxWaitMs = 100
loSock.Close(100)
* Output:
* This is the 1st string
* This is string number 2
RELEASE loSock