Sample code for 30+ languages & platforms
Visual FoxPro

Socket Send and Receive BinData

Demonstrates the Chilkat Socket ReceiveBdN and SendBd methods.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSock
LOCAL lnUseTls
LOCAL lnPort
LOCAL lnMaxWaitMs
LOCAL loBdToSend
LOCAL i
LOCAL lnByteVal
LOCAL loBdRecv

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 26 bytes contained in a Chilkat BinData
loBdToSend = CreateObject('Chilkat.BinData')
i = 0
lnByteVal = 65
DO WHILE i < 26
    loBdToSend.AppendByte(lnByteVal)
    lnByteVal = lnByteVal + 1
    i = i + 1
ENDDO
* Send the contents of the BinData
* Pass zero's in the 2nd and 3rd arguments to send the entire contents of the BinData.
loSock.SendBd(loBdToSend,0,0)

* The tcpbin.com echo server only echoes after receiving an LF (linefeed char)
loSock.SendByte(10)

* The echo server will echo back whatever is sent to it.
* We should be able to read the same bytes back..
loBdRecv = CreateObject('Chilkat.BinData')
* Receive the 26 bytes previously sent, plus the LF char.
lnSuccess = loSock.ReceiveBdN(27,loBdRecv)
IF (lnSuccess = 0) THEN
    ? loSock.LastErrorText
    RELEASE loSock
    RELEASE loBdToSend
    RELEASE loBdRecv
    CANCEL
ENDIF

* Show the contents of bdRecv in hex format
? loBdRecv.GetEncoded("hex")

* Output:  4142434445464748494A4B4C4D4E4F505152535455565758595A0A

RELEASE loSock
RELEASE loBdToSend
RELEASE loBdRecv