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
(Visual FoxPro) Async Accept Socket ConnectionDemonstrates how to get the connected client socket after accepting a connection asynchronously.
LOCAL loListenSocket LOCAL lnSuccess LOCAL lnMaxWaitMs LOCAL loAcceptTask LOCAL loConnectedClient * This example assumes the Chilkat Socket API to have been previously unlocked. * See Socket Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Socket') loListenSocket = CreateObject('Chilkat.Socket') * Bind to a port and listen. * This example will listen at port 5555 and allows for a backlog * of 25 pending connection requests. lnSuccess = loListenSocket.BindAndListen(5555,25) IF (lnSuccess <> 1) THEN ? loListenSocket.LastErrorText RELEASE loListenSocket CANCEL ENDIF * Start a background task to accept an incoming connection ... lnMaxWaitMs = 20000 loAcceptTask = loListenSocket.AcceptNextConnectionAsync(lnMaxWaitMs) loAcceptTask.Run() * ... * ... * ... * Imagine at this point the task has completed successfully, * and a connection was accepted. Here's how to get the connected socket... * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Socket') loConnectedClient = CreateObject('Chilkat.Socket') lnSuccess = loConnectedClient.LoadTaskResult(loAcceptTask) * Here's how it works: The AcceptNextConnection method would normally * return a socket object when called synchronously. When called asynchronously, * it cannot do so because it returns the task object. When the async method * (running in a background thread) completes, the socket object that is the client * connection is contained within the task object. * * This can be generalized for any case where a Chilkat method returns an object. * The async version of that method is such that the object returned in the background * thread is contained within the task object. * To get the result object, we create a new object instance of that type. * In this case, we create a socket object (connectedClient). There is a LoadTaskResult * method in all Chilkat classes that can be a return value of an async method call. * The LoadTaskResult method transfers the returned object from the task to the caller. RELEASE loListenSocket RELEASE loConnectedClient |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.