![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Example: Socket.DupSocket methodSee more Socket/SSL/TLS ExamplesDemonstrates how to call the DupSocket method.Note: This example requires Chilkat v11.0.0 or greater.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Socket; ... procedure TForm1.Button1Click(Sender: TObject); var socket: HCkSocket; success: Boolean; socket_for_sending: HCkSocket; socket_for_monitor: HCkSocket; begin socket := CkSocket_Create(); success := CkSocket_Connect(socket,'example.com',443,True,5000); // ... // ... // Duplicate the socket to share the same connection across threads. // In a multithreaded application, each thread should use its own socket object. For example: // - The main thread can use the original socket for reading. // - A secondary thread can use a duplicate for writing. // - Another thread can use a separate duplicate to monitor the connection status. socket_for_sending := CkSocket_Create(); success := CkSocket_DupSocket(socket,socket_for_sending); if (success = False) then begin Memo1.Lines.Add(CkSocket__lastErrorText(socket)); Exit; end; socket_for_monitor := CkSocket_Create(); success := CkSocket_DupSocket(socket,socket_for_monitor); if (success = False) then begin Memo1.Lines.Add(CkSocket__lastErrorText(socket)); Exit; end; // All three socket objects: socket, socket_for_sending, and socket_for_monitor share the same underlying connection. CkSocket_Dispose(socket); CkSocket_Dispose(socket_for_sending); CkSocket_Dispose(socket_for_monitor); end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.