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
(Swift 3,4,5...) Socket Receive String Until Specific Byte Value is ReceivedDemonstrates the Chilkat Socket ReceiveStringUntilByte method.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let sock = CkoSocket()! // -------------------------------------------------------------------- // This example uses the public TCP echo service at https://tcpbin.com/ // -------------------------------------------------------------------- var useTls: Bool = false var port: Int = 4242 var maxWaitMs: Int = 5000 var success: Bool = sock.connect("tcpbin.com", port: port, ssl: useTls, maxWaitMs: maxWaitMs) if success == false { print("\(sock.lastErrorText!)") return } // Wait a max of 2 seconds for a response.. sock.maxReadIdleMs = 2000 // Send some strings, each terminated by a 0 byte. sock.send("This is the 1st string") sock.sendByte(0) sock.send("This is string number 2") sock.sendByte(0) // The tcpbin.com echo server only echoes after receiving an LF (linefeed char) sock.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) var lookForByte: Int = 0 var s1: String? = sock.receiveString(untilByte: lookForByte) if sock.lastMethodSuccess == false { print("\(sock.lastErrorText!)") return } print("\(s1!)") var s2: String? = sock.receiveString(untilByte: lookForByte) if sock.lastMethodSuccess == false { print("\(sock.lastErrorText!)") return } print("\(s2!)") // The echo server will also echo back the final LF sock.receiveByte(true) maxWaitMs = 100 sock.close(100) // Output: // This is the 1st string // This is string number 2 } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.