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
(PureBasic) Socket/SSL/TLS through SOCKS5 / SOCKS4 ProxyDemonstrates how to use the Chilkat Socket/SSL/TLS component/library with a SOCKS5 or SOCKS4 proxy server.
IncludeFile "CkSocket.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. socket.i = CkSocket::ckCreate() If socket.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; To use a SOCKS4 or SOCKS5 proxy, simply set the following ; properties prior to calling Connect. The connection may be SSL/TLS or ; non-secure - both will work with a SOCKS proxy. ; The SOCKS hostname may be a domain name or ; IP address: CkSocket::setCkSocksHostname(socket, "www.mysocksproxyserver.com") CkSocket::setCkSocksPort(socket, 1080) CkSocket::setCkSocksUsername(socket, "myProxyLogin") CkSocket::setCkSocksPassword(socket, "myProxyPassword") ; Set the SOCKS version to 4 or 5 based on the version ; of the SOCKS proxy server: CkSocket::setCkSocksVersion(socket, 5) ; Note: SOCKS4 servers only support usernames without passwords. ; SOCKS5 servers support full login/password authentication. ; Connect to port 5555 of 192.168.1.108. ; hostname may be a domain name or IP address. hostname.s = "192.168.1.108" ssl.i = 0 maxWaitMillisec.i = 20000 success.i = CkSocket::ckConnect(socket,hostname,5555,ssl,maxWaitMillisec) If success <> 1 Debug CkSocket::ckLastErrorText(socket) CkSocket::ckDispose(socket) ProcedureReturn EndIf ; Set maximum timeouts for reading an writing (in millisec) CkSocket::setCkMaxReadIdleMs(socket, 10000) CkSocket::setCkMaxSendIdleMs(socket, 10000) ; The server (in this example) is going to send a "Hello World!" ; message. Read it: receivedMsg.s = CkSocket::ckReceiveString(socket) If CkSocket::ckLastMethodSuccess(socket) <> 1 Debug CkSocket::ckLastErrorText(socket) CkSocket::ckDispose(socket) ProcedureReturn EndIf ; Close the connection with the server ; Wait a max of 20 seconds (20000 millsec) success = CkSocket::ckClose(socket,20000) Debug receivedMsg CkSocket::ckDispose(socket) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.