DataFlex
DataFlex
Socket Send and Receive BinData
Demonstrates the Chilkat Socket ReceiveBdN and SendBd methods.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSock
Boolean iUseTls
Integer iPort
Integer iMaxWaitMs
Variant vBdToSend
Handle hoBdToSend
Integer i
Integer iByteVal
Variant vBdRecv
Handle hoBdRecv
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatSocket)) To hoSock
If (Not(IsComObjectCreated(hoSock))) Begin
Send CreateComObject of hoSock
End
// --------------------------------------------------------------------
// This example uses the public TCP echo service at https://tcpbin.com/
// --------------------------------------------------------------------
Move False To iUseTls
Move 4242 To iPort
Move 5000 To iMaxWaitMs
Get ComConnect Of hoSock "tcpbin.com" iPort iUseTls iMaxWaitMs To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSock To sTemp1
Showln sTemp1
Procedure_Return
End
// Wait a max of 2 seconds for a response..
Set ComMaxReadIdleMs Of hoSock To 2000
// Send 26 bytes contained in a Chilkat BinData
Get Create (RefClass(cComChilkatBinData)) To hoBdToSend
If (Not(IsComObjectCreated(hoBdToSend))) Begin
Send CreateComObject of hoBdToSend
End
Move 0 To i
Move 65 To iByteVal
While (i < 26)
Get ComAppendByte Of hoBdToSend iByteVal To iSuccess
Move (iByteVal + 1) To iByteVal
Move (i + 1) To i
Loop
// Send the contents of the BinData
// Pass zero's in the 2nd and 3rd arguments to send the entire contents of the BinData.
Get pvComObject of hoBdToSend to vBdToSend
Get ComSendBd Of hoSock vBdToSend 0 0 To iSuccess
// The tcpbin.com echo server only echoes after receiving an LF (linefeed char)
Get ComSendByte Of hoSock 10 To iSuccess
// The echo server will echo back whatever is sent to it.
// We should be able to read the same bytes back..
Get Create (RefClass(cComChilkatBinData)) To hoBdRecv
If (Not(IsComObjectCreated(hoBdRecv))) Begin
Send CreateComObject of hoBdRecv
End
// Receive the 26 bytes previously sent, plus the LF char.
Get pvComObject of hoBdRecv to vBdRecv
Get ComReceiveBdN Of hoSock 27 vBdRecv To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSock To sTemp1
Showln sTemp1
Procedure_Return
End
// Show the contents of bdRecv in hex format
Get ComGetEncoded Of hoBdRecv "hex" To sTemp1
Showln sTemp1
// Output: 4142434445464748494A4B4C4D4E4F505152535455565758595A0A
End_Procedure