Namespace: OpenEdge.Net.ServerConnection
Type: Class ClientSocket
Parent Classes:
Inherits: Progress.Lang.Object
Implements: OpenEdge.Core.ServerConnection.IServerConnection, OpenEdge.Logging.ISupportLogging


Copyright (c) 2014-2023 by Progress Software Corporation. All rights reserved.
File:ClientSocket
Description:An implementation of a client socket
Author(s):pjudge
Created:Tue Nov 25 09:13:36 EST 2014
/* Corresponds to the socket's LOCAL-HOST attribute



Method Summary
  Options Name Purpose
  Connect () /** Connect to the server specified, based on existing ConnectionParameters */
  Connect (ClientSocketConnectionParameters) /** Connect to the server specified, based on passed-in Connection Parameters @param ClientSocketConnectionParameters Connection information for the connection. */
  Connect (URI) /** Connect to the server specified, based on passed-in URI @param URI Connection information for the connection. */
  CreateServer () /** Creates a server object (ie this-object:Server). This is separated from the Connect/Disconnect pair of methods so that one server can be connected and disconnected multiple time. */
  DestroyServer () /** Destroys the server object (ie this-object:Server). This is separated from the Connect/Disconnect pair of methods so that one server can be connected and disconnected multiple time. */
  Disconnect () /** Disconnect from the server, if connected */
  LOGICAL IsConnected () /* Indicated whether we have a connection @return logical TRUE is the socket is connected; false otherwise */
  OnDataReceived (SocketReadEventArgs) /** Publishes the DataReceived event. @param SocketReadEventArgs Arguments for this event */
  OnReadTerminated (SocketReadEventArgs) /** Publishes the ReadTerminated event. @param EventArgs Arguments for this event */
  OnReadTimeout (SocketReadEventArgs) /** Publishes the ReadTimeout event. @param EventArgs Arguments for this event */
  ReadResponseHandler () /** Callback/event procedure fired on the READ-RESPONSE event of the socket. */
  SetSocketOptions (handle) /* Sets the various socket options, per this object's properties. @param handle The socket on which to set these options */
  StartTls (character) /* Starts a new TLS (for insecure connections), or changes (for already-secure) connections, the certificates used to decrypt the traffic. Used primarily for HTTP proxy tunnelling. @param character The certificate subject (host) name */
  WaitForResponse () /** Waits for a response from a write event on the socket with a no timeout. Uses the default timeout, which is none/zero */
  WaitForResponse (decimal) /** Waits for a response from a write event on the socket. Polls (ie loops) for a response @param decimal A timeout value for read events in seconds. A zero value means no timeout. */
  WaitForResponseAsync (decimal) /** Waits for a response from a write event on the socket. Uses a WAIT-FOR loop to emulate/provide async. @param decimal A timeout value for read events in seconds. A zero value means no timeout. */
  WriteData (IMemoryPointer)
  WriteData (Memptr) /** Writes data to the connected server. @param Memptr The data to be written to the socket. */

Constructor Summary
  Options Name Purpose
  ClientSocket () /** Default constructor. Connection parameters can be specified via the Connnect() method. */
  ClientSocket (ClientSocketConnectionParameters) /** Constructor. @param ClientSocketConnectionParameters A URI and other parameters that this socket will connect to. */

Event Summary
  Options Name Purpose
  DataReceived (ClientSocket, SocketReadEventArgs) /** Event fired when a chunk of data is received from the socket */
  ReadTerminated (ClientSocket, SocketReadEventArgs) /** Fired when a read is terminated for an reason (socket disconnect, no data etc) */
  ReadTimeout (ClientSocket, SocketReadEventArgs) /** Fired when a read times out (optional based on a timeout) */

Property Summary
  Options Name Purpose
  LOGICAL Connected
  OpenEdge.Core.ServerConnection.IConnectionParameters ConnectionParameters
  INTEGER DefaultReadTimeout
  LOGICAL KeepAlive
  INTEGER LingerTime
  CHARACTER LocalHost
  INTEGER LocalPort
  OpenEdge.Logging.ILogWriter Logger
  LOGICAL NoDelay
  INTEGER ReadBufferSize
  INTEGER ReceiveBufferSize
  INTEGER ReceiveTimeout
  CHARACTER RemoteHost
  INTEGER RemotePort
  LOGICAL ReuseAddress
  INTEGER SendBufferSize
  Progress.Lang.Object Server
  CHARACTER SslServerName


Method Detail
Top

Connect ()

Purpose: Connect to the server specified, based on existing ConnectionParameters
Top

Connect (ClientSocketConnectionParameters)

Purpose: Connect to the server specified, based on passed-in Connection Parameters
Parameters:
poParams OpenEdge.Net.ServerConnection.ClientSocketConnectionParameters
 
Top

Connect (URI)

Purpose: Connect to the server specified, based on passed-in URI
Parameters:
poURI OpenEdge.Net.URI
 
Top

CreateServer ()

Purpose: Creates a server object (ie this-object:Server). This is separated
from the Connect/Disconnect pair of methods so that one server can
be connected and disconnected multiple time.
Top

DestroyServer ()

Purpose: Destroys the server object (ie this-object:Server). This is separated
from the Connect/Disconnect pair of methods so that one server can
be connected and disconnected multiple time.
Top

Disconnect ()

Purpose: Disconnect from the server, if connected
Top

LOGICAL IsConnected ()

/* Indicated whether we have a connection
Returns LOGICAL
  logical TRUE is the socket is connected; false otherwise
Top

OnDataReceived (SocketReadEventArgs)

Purpose: Publishes the DataReceived event.
Parameters:
poEventArgs OpenEdge.Net.ServerConnection.SocketReadEventArgs
 
Top

OnReadTerminated (SocketReadEventArgs)

Purpose: Publishes the ReadTerminated event.
Parameters:
poEventArgs OpenEdge.Net.ServerConnection.SocketReadEventArgs
 
Top

OnReadTimeout (SocketReadEventArgs)

Purpose: Publishes the ReadTimeout event.
Parameters:
poEventArgs OpenEdge.Net.ServerConnection.SocketReadEventArgs
 
Top

ReadResponseHandler ()

Purpose: Callback/event procedure fired on the READ-RESPONSE event of the
socket.
Top

SetSocketOptions (handle)

/* Sets the various socket options, per this object's properties.
Parameters:
phSocket HANDLE
 
Top

StartTls (character)

/* Starts a new TLS (for insecure connections), or changes (for already-secure)
connections, the certificates used to decrypt the traffic. Used primarily
for HTTP proxy tunnelling.
Parameters:
pCertificatSubjectName CHARACTER
 
Top

WaitForResponse ()

Purpose: Waits for a response from a write event on the socket with a
no timeout. Uses the default timeout, which is none/zero
Top

WaitForResponse (decimal)

Purpose: Waits for a response from a write event on the socket. Polls
(ie loops) for a response
value means no timeout.
Parameters:
pdTimeout DECIMAL
 
Top

WaitForResponseAsync (decimal)

Purpose: Waits for a response from a write event on the socket. Uses a WAIT-FOR loop
to emulate/provide async.
value means no timeout.
Parameters:
pdTimeout DECIMAL
 
Top

WriteData (IMemoryPointer)

Parameters:
poData OpenEdge.Core.IMemoryPointer
 
Top

WriteData (Memptr)

Purpose: Writes data to the connected server.
Parameters:
poData OpenEdge.Core.Memptr
 


Constructor Detail
Top

ClientSocket ()

Purpose: Default constructor. Connection parameters can be specified via the
Connnect() method.
Top

ClientSocket (ClientSocketConnectionParameters)

Purpose: Constructor.
this socket will connect to.
Parameters:
poConnectionParameters OpenEdge.Net.ServerConnection.ClientSocketConnectionParameters
 


Event Detail
Top

DataReceived (ClientSocket, SocketReadEventArgs)

Purpose: Event fired when a chunk of data is received from the socket
Parameters:
poSender OpenEdge.Net.ServerConnection.ClientSocket
 
poEventArgs OpenEdge.Net.ServerConnection.SocketReadEventArgs
 
Top

ReadTerminated (ClientSocket, SocketReadEventArgs)

Purpose: Fired when a read is terminated for an reason (socket disconnect, no data etc)
Parameters:
poSender OpenEdge.Net.ServerConnection.ClientSocket
 
poEventArgs OpenEdge.Net.ServerConnection.SocketReadEventArgs
 
Top

ReadTimeout (ClientSocket, SocketReadEventArgs)

Purpose: Fired when a read times out (optional based on a timeout)
Parameters:
poSender OpenEdge.Net.ServerConnection.ClientSocket
 
poEventArgs OpenEdge.Net.ServerConnection.SocketReadEventArgs
 


Property Detail
Top

LOGICAL Connected

Returns LOGICAL
 
Top

OpenEdge.Core.ServerConnection.IConnectionParameters ConnectionParameters

Returns OpenEdge.Core.ServerConnection.IConnectionParameters
 
Top

INTEGER DefaultReadTimeout

Returns INTEGER
 
Top

LOGICAL KeepAlive

Returns LOGICAL
 
Top

INTEGER LingerTime

Returns INTEGER
 
Top

CHARACTER LocalHost

Returns CHARACTER
 
Top

INTEGER LocalPort

Returns INTEGER
 
Top

OpenEdge.Logging.ILogWriter Logger

Returns OpenEdge.Logging.ILogWriter
 
Top

LOGICAL NoDelay

Returns LOGICAL
 
Top

INTEGER ReadBufferSize

Returns INTEGER
 
Top

INTEGER ReceiveBufferSize

Returns INTEGER
 
Top

INTEGER ReceiveTimeout

Returns INTEGER
 
Top

CHARACTER RemoteHost

Returns CHARACTER
 
Top

INTEGER RemotePort

Returns INTEGER
 
Top

LOGICAL ReuseAddress

Returns LOGICAL
 
Top

INTEGER SendBufferSize

Returns INTEGER
 
Top

Progress.Lang.Object Server

Returns Progress.Lang.Object
 
Top

CHARACTER SslServerName

Returns CHARACTER