Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Socket Send/Receive 16-bit IntegersDemonstrates sending and receiving 16-bit integers over a socket connection using either big-endian or little-endian byte ordering.
Use ChilkatAx-win32.pkg Procedure Test Handle hoSock Boolean iUseTls Integer iPort Integer iMaxWaitMs Boolean iSuccess Integer iValue Boolean iBigEndian String sHexStr String sTemp1 Integer iTemp1 // 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 a 16-bit integer using big-endian byte ordering (also called network byte order) // 12022 decimal = 2EF6 hex Move 12022 To iValue Move True To iBigEndian Get ComSendInt16 Of hoSock iValue iBigEndian To iSuccess // Send it again, because we'll read it two different ways.. Get ComSendInt16 Of hoSock iValue iBigEndian To iSuccess // The tcpbin.com echo server only echoes after receiving an LF (linefeed char) Get ComSendByte Of hoSock 10 To iSuccess // Let's see hex values of the 2 bytes sent in network byte order (big-endian) // (The echo server sends back exactly the bytes received.) Get ComReceiveNBytesENC Of hoSock 2 "hex" To sHexStr // In the big-ending byte order, the byte order is most significant byte to least significant, // therefore we should see the bytes in the order 0x2E 0xF6. Showln "Expecting big-endian 2EF6" Showln sHexStr // Let's read directly to an integer.. Get ComReceiveInt16 Of hoSock iBigEndian True To iSuccess Showln "Expecting 12022" Get ComReceivedInt Of hoSock To iTemp1 Showln "Received: " iTemp1 // Consume the LF that gets echoed back.. Get ComReceiveByte Of hoSock True To iSuccess // -------------------------------------------------------------------- // Let's do the same thing, but with little-endian byte ordering. Showln "----" // 12022 decimal = 2EF6 hex, but little-endian byte ordering will send the bytes in the order 0xF6 0x2E Move 12022 To iValue Move False To iBigEndian Get ComSendInt16 Of hoSock iValue iBigEndian To iSuccess Get ComSendInt16 Of hoSock iValue iBigEndian To iSuccess Get ComSendByte Of hoSock 10 To iSuccess Get ComReceiveNBytesENC Of hoSock 2 "hex" To sHexStr Showln "Expecting little-endian F62E" Showln sHexStr Get ComReceiveInt16 Of hoSock iBigEndian True To iSuccess Showln "Expecting 12022" Get ComReceivedInt Of hoSock To iTemp1 Showln "Received: " iTemp1 // Consume the LF that gets echoed back.. Get ComReceiveByte Of hoSock True To iSuccess Get ComClose Of hoSock 1000 To iSuccess // Output: // Expecting big-endian 2EF6 // 2EF6 // Expecting 12022 // Received: 12022 // ---- // Expecting little-endian F62E // F62E // Expecting 12022 // Received: 12022 End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.