Difference between revisions of "TWinsock2Socket"

From Ultibo.org
Jump to: navigation, search
(Created page with "Return to Unit Winsock2 __TOC__ === Description === ---- ''To be documented'' === Class definitions === ---- <div class="toccolours mw-collapsible mw-...")
(No difference)

Revision as of 03:55, 6 June 2018

Return to Unit Winsock2


Description


To be documented

Class definitions



TWinsock2Socket = class(TListObject)

Note: Base Socket classes
 
public
constructor Create;  
private
FBoundPort:Word;  
FBoundAddress:String;  
 
FReuseAddress:Boolean;  
 
procedure SetFamily(AFamily:Integer); virtual;  
procedure SetSocketType(ASocketType:Integer); virtual;  
procedure SetProtocol(AProtocol:Integer); virtual;  
 
procedure SetBoundPort(ABoundPort:Word);  
procedure SetBoundAddress(const ABoundAddress:String); virtual;  
 
procedure SetReuseAddress(AReuseAddress:Boolean);  
 
function GetLocalPort:Word;  
function GetLocalHost:String;  
function GetLocalAddress:String;  
function GetLocalAddresses:TStrings;  
 
function GetSendSize:Integer;  
procedure SetSendSize(ASize:Integer);  
function GetReceiveSize:Integer;  
procedure SetReceiveSize(ASize:Integer);  
function GetSendTimeout:Integer;  
procedure SetSendTimeout(ATimeout:Integer);  
function GetReceiveTimeout:Integer;  
procedure SetReceiveTimeout(ATimeout:Integer);  
function GetConnectTimeout:Integer;  
procedure SetConnectTimeout(ATimeout:Integer);  
protected
FHandle:TSocket;  
 
FFamily:Integer;  
FSocketType:Integer;  
FProtocol:Integer;  
 
FLastError:LongInt;  
 
function GetBroadcastAddress:String;  
 
function AllocateFamily:Boolean; virtual;  
 
function AllocateAddress(var ALength:Integer):PSockAddr;  
function ReleaseAddress(var ASockAddr:PSockAddr; var ALength:Integer):Boolean;  
 
function AllocateBoundAddress(var ALength:Integer):PSockAddr;  
 
function AllocateSocket(ASocketType:Integer):TSocket;  
function Bind:LongInt;  
 
function SockAddrToPort(ASockAddr:PSockAddr; ALength:Integer):Word;  
function SockAddrToAddress(ASockAddr:PSockAddr; ALength:Integer):String;  
function PortToSockAddr(APort:Word; ASockAddr:PSockAddr; ALength:Integer):Boolean;  
function AddressToSockAddr(const AAddress:String; var ALength:Integer):PSockAddr;  
public
property Handle:TSocket read FHandle;  
 
property Family:Integer read FFamily write SetFamily;  
property SocketType:Integer read FSocketType write SetSocketType;  
property Protocol:Integer read FProtocol write SetProtocol;  
 
property LastError:LongInt read FLastError;  
 
property BoundPort:Word read FBoundPort write SetBoundPort;  
property BoundAddress:String read FBoundAddress write SetBoundAddress;  
 
property ReuseAddress:Boolean read FReuseAddress write SetReuseAddress;  
 
property LocalPort:Word read GetLocalPort;  
property LocalHost:String read GetLocalHost;  
property LocalAddress:String read GetLocalAddress;  
property LocalAddresses:TStrings read GetLocalAddresses;  
 
property SendSize:Integer read GetSendSize write SetSendSize;  
property ReceiveSize:Integer read GetReceiveSize write SetReceiveSize;  
property SendTimeout:Integer read GetSendTimeout write SetSendTimeout;  
property ReceiveTimeout:Integer read GetReceiveTimeout write SetReceiveTimeout;  
property ConnectTimeout:Integer read GetConnectTimeout write SetConnectTimeout;  
 
function Connected:Boolean; virtual;  
 
function Shutdown:Boolean; virtual;  
function Disconnect:Boolean; virtual;  
function CloseSocket:Boolean; virtual;  
 
function ResolveHost(const AHost:String):String;  
function ResolveFamily(const AAddress:String):Integer;  
function ResolveAddress(const AAddress:String):String;  
 
function ResolveHostEx(const AHost:String; AFamily:Integer; AAll:Boolean):TStrings;  


Function declarations



constructor TWinsock2Socket.Create;
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetFamily(AFamily:Integer);
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetSocketType(ASocketType:Integer);
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetProtocol(AProtocol:Integer);
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetBoundPort(ABoundPort:Word);
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetBoundAddress(const ABoundAddress:String);
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetReuseAddress(AReuseAddress:Boolean);
Description: To be documented
Note None documented


function TWinsock2Socket.GetLocalPort:Word;
Description: To be documented
Note None documented


function TWinsock2Socket.GetLocalHost:String;
Description: To be documented
Note None documented


function TWinsock2Socket.GetLocalAddress:String;
Description: To be documented
Note None documented


function TWinsock2Socket.GetLocalAddresses:TStrings;
Description: To be documented
Note None documented


function TWinsock2Socket.GetSendSize:Integer;
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetSendSize(ASize:Integer);
Description: To be documented
Note None documented


function TWinsock2Socket.GetReceiveSize:Integer;
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetReceiveSize(ASize:Integer);
Description: To be documented
Note None documented


function TWinsock2Socket.GetSendTimeout:Integer;
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetSendTimeout(ATimeout:Integer);
Description: To be documented
Note None documented


function TWinsock2Socket.GetReceiveTimeout:Integer;
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetReceiveTimeout(ATimeout:Integer);
Description: To be documented
Note None documented


function TWinsock2Socket.GetConnectTimeout:Integer;
Description: To be documented
Note None documented


procedure TWinsock2Socket.SetConnectTimeout(ATimeout:Integer);
Description: To be documented
Note None documented


function TWinsock2Socket.GetBroadcastAddress:String;
Description: To be documented
Note None documented


function TWinsock2Socket.AllocateFamily:Boolean;
Description: Check Family and Bound Address, normalise as needed
Note None documented


function TWinsock2Socket.AllocateAddress(var ALength:Integer):PSockAddr;
Description: Allocate s socket address structure for the current family
Note None documented


function TWinsock2Socket.ReleaseAddress(var ASockAddr:PSockAddr; var ALength:Integer):Boolean;
Description: Free a socket address structure allocated by AllocateAddress or AddressToSockAddr
Note None documented


function TWinsock2Socket.AllocateBoundAddress(var ALength:Integer):PSockAddr;
Description: Allocate a socket address structure for the bound address and port
Note Change this to use InetPton for both IPv4 and IPv6 addresses


function TWinsock2Socket.AllocateSocket(ASocketType:Integer):TSocket;
Description: To be documented
Note None documented


function TWinsock2Socket.Bind:LongInt;
Description: To be documented
Note None documented


function TWinsock2Socket.SockAddrToPort(ASockAddr:PSockAddr; ALength:Integer):Word;
Description: Convert a socket adress structure to a numeric port
Note None documented


function TWinsock2Socket.SockAddrToAddress(ASockAddr:PSockAddr; ALength:Integer):String;
Description: Convert a socket address structure to a numeric address
Note None documented


function TWinsock2Socket.PortToSockAddr(APort:Word; ASockAddr:PSockAddr; ALength:Integer):Boolean;
Description: Convert a numeric port to a socket adress structure
Note None documented


function TWinsock2Socket.AddressToSockAddr(const AAddress:String; var ALength:Integer):PSockAddr;
Description: Convert a numeric address to a socket address structure
Note None documented


function TWinsock2Socket.Connected:Boolean;
Description: To be documented
Note None documented


function TWinsock2Socket.Shutdown:Boolean;
Description: To be documented
Note None documented


function TWinsock2Socket.Disconnect:Boolean;
Description: To be documented
Note None documented


function TWinsock2Socket.CloseSocket:Boolean;
Description: To be documented
Note None documented


function TWinsock2Socket.ResolveHost(const AHost:String):String;
Description: Resolve a hostname to a numeric address
Note None documented


function TWinsock2Socket.ResolveAddress(const AAddress:String):String;
Description: Resolve a numeric address to a hostname
Note None documented


function TWinsock2Socket.ResolveFamily(const AAddress:String):Integer;
Description: Resolve a numeric address to an address family
Note None documented


function TWinsock2Socket.ResolveHostEx(const AHost:String; AFamily:Integer; AAll:Boolean):TStrings;
Description: Resolve a hostname to a numeric address or addresses in the family specified or all families
Note All may include addresses that this host cannot connect to such as IPv6 if this host does not have a global IPv6 address


Return to Unit Reference