Visual FoxPro
Visual FoxPro
Socket Send and Receive BinData
Demonstrates the Chilkat Socket ReceiveBdN and SendBd methods.Chilkat Visual FoxPro Downloads
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