| Class TCustomWSocket (unit WSocket) |
TComponent
| Constructors |
constructor Create(AOwner: TComponent);| Functions |
procedure Abort;
function Accept: TSocket;
procedure CancelDnsLookup;
procedure Close;
procedure Connect;
destructor Destroy;
procedure DnsLookup(HostName : String);
procedure Dup(NewHSocket : TSocket);
procedure Flush;
function GetPeerAddr: string;
function GetPeerName(var Name : TSockAddrIn; NameLen : Integer) : integer;
function GetSockName(var saddr : TSockAddrIn; var saddrlen : Integer) : integer;
function GetXPort: string;
function Listen : Integer;
procedure MessageLoop;
procedure Pause;
function PeekData(Buffer : Pointer; BufferSize: integer) : integer;
procedure ProcessMessages;
procedure PutDataInSendBuffer(Data : Pointer; Len : Integer);
procedure PutStringInSendBuffer(Str : String);
procedure ReadLine(Timeout : integer; var Buffer : String);
function Receive(Buffer : Pointer; BufferSize: integer) : integer;
function ReceiveFrom(Buffer : Pointer;
BufferSize : Integer;
var From : TSockAddr;
var FromLen : Integer) : integer;
function ReceiveStr : string;
procedure Resume;
function Send(Data : Pointer; Len : Integer) : integer;
function SendStr(Str : String) : Integer;
procedure SetLingerOption;
procedure Shutdown(How : Integer);
procedure TimerClear(var tvp : TTimeVal);
function TimerCmp(var tvp : TTimeVal; var uvp : TTimeVal; IsEqual : Boolean) : Boolean;
function TimerIsSet(var tvp : TTimeVal) : Boolean;
function Wait(Timeout : integer; State : TSocketState) : Boolean;
procedure WaitForClose;
procedure AssignDefaultValue;
procedure ASyncReceive(var msg: TMessage);
procedure BindSocket;
procedure ChangeState(NewState : TSocketState);
function CheckFWait : Boolean;
function GetAddr : String;
function GetPort : String;
function GetProto : String;
function GetRcvdCount : LongInt;
function GetSendFlags : TSocketSendFlags;
procedure InternalClose(bShut : Boolean);
procedure Notification(AComponent: TComponent; operation: TOperation);
procedure RaiseException(const Msg : String);
procedure RaiseExceptionFmt(const Fmt : String; args : array of const);
procedure ReadLineReceive;
procedure ReadLineStart;
procedure SendText(Str : String);
procedure SetAddr(InAddr : String);
procedure SetPort(sPort : String);
procedure SetProto(sProto : String);
procedure SetSendFlags(newValue : TSocketSendFlags);
procedure SocketError(sockfunc: string);
procedure TriggerChangeState(OldState, NewState : TSocketState);
function TriggerDataAvailable(Error : Word) : Boolean;
procedure TriggerDataSent(Error : Word);
procedure TriggerDNSLookupDone(Error : Word);
procedure TriggerError;
procedure TriggerSessionAvailable(Error : Word);
procedure TriggerSessionClosed(Error : Word);
procedure TriggerSessionConnected(Error : Word);
procedure TryToSend;
procedure WMAsyncGetHostByName(var msg: TMessage);
procedure WMASyncSelect(var msg: TMessage);
procedure WndProc(var MsgRec: TMessage);| Properties |
property Addr : string
property AllSent : Boolean
property BufSize : Integer
property DnsResult : String
property DnsResultList : TStrings
property FlushTimeout : Integer
property Handle : HWND
property HSocket : TSocket
property LastError : Integer
property LingerOnOff : TSocketLingerOnOff
property LingerTimeout : Integer
property LocalPort : Integer
property MultiThreaded : Boolean
property Port : string
property PortNum : Integer
property Proto : String
property RcvdCount : LongInt
property ReadCount : LongInt
property SendFlags : TSocketSendFlags
property State : TSocketState
property Text : String
property WaitCtrl : TWait| Events |
event OnChangeState : TChangeState
event OnDataAvailable : TDataAvailable
event OnDataSent : TDataSent
event OnDnsLookupDone : TDnsLookupDone
event OnError : TNotifyEvent
event OnLineTooLong : TNotifyEvent
event OnSessionAvailable : TSessionAvailable
event OnSessionClosed : TSessionClosed
event OnSessionConnected : TSessionConnected| Variables |
sin : TSockAddrIn;
bAllSent : Boolean;
bMoreFlag : Boolean;
bWrite : Boolean;
FAddrAssigned : Boolean;
FAddrFormat : Integer;
FAddrStr : String;
FASocket : TSocket;
FBufList : TList;
FBufSize : Integer;
FCloseInvoked : Boolean;
FDnsLookupBuffer : array [0..MAXGETHOSTSTRUCT] of char;
FDnsLookupHandle : THandle;
FDnsResult : String;
FDnsResultList : TStrings;
FFlushTimeout : Integer;
FHSocket : TSocket;
FLastError : Integer;
FLingerOnOff : TSocketLingerOnOff;
FLingerTimeout : Integer;
FLocalPort : Integer;
FMultiThreaded : Boolean;
FOnChangeState : TChangeState;
FOnDataAvailable : TDataAvailable;
FOnDataSent : TDataSent;
FOnDnsLookupDone : TDnsLookupDone;
FOnError : TNotifyEvent;
FOnLineTooLong : TNotifyEvent;
FOnSessionAvailable : TSessionAvailable;
FOnSessionClosed : TSessionClosed;
FOnSessionConnected : TSessionConnected;
FPaused : Boolean;
FPortAssigned : Boolean;
FPortNum : Integer;
FPortStr : String;
FProto : integer;
FProtoAssigned : Boolean;
FProtoStr : String;
FReadCount : LongInt;
FSendFlags : Integer;
FState : TSocketState;
FStateWaited : TSocketState;
FType : integer;
FWait : TWait;
FWindowHandle : HWND;
nMoreCnt : Integer;
nMoreMax : Integer;
ReadLineBuffer : String[255];
ReadLineCount : Integer;
ReadLineFlag : Boolean;| Constructors |
constructor Create(AOwner: TComponent);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
| Functions |
procedure Abort;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function Accept: TSocket;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CancelDnsLookup;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Close;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Connect;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
destructor Destroy;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure DnsLookup(HostName : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Dup(NewHSocket : TSocket);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Flush;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetPeerAddr: string;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetPeerName(var Name : TSockAddrIn; NameLen : Integer) : integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetSockName(var saddr : TSockAddrIn; var saddrlen : Integer) : integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetXPort: string;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function Listen : Integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure MessageLoop;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Loop thru message processing until the WM_QUIT message is received } { This is intended for multithreaded application using TWSocket.
procedure Pause;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function PeekData(Buffer : Pointer; BufferSize: integer) : integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessMessages;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Loop thru message processing until all messages are processed. } { This is intended for multithreaded application using TWSocket.
procedure PutDataInSendBuffer(Data : Pointer; Len : Integer);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure PutStringInSendBuffer(Str : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ReadLine(Timeout : integer; var Buffer : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function Receive(Buffer : Pointer; BufferSize: integer) : integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { The socket is non-blocking, so this routine will only receive as much } { data as it is available.
function ReceiveFrom(Buffer : Pointer;
BufferSize : Integer;
var From : TSockAddr;
var FromLen : Integer) : integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function ReceiveStr : string;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Receive as much data as possible into a string
procedure Resume;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function Send(Data : Pointer; Len : Integer) : integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Return -1 if error, else return number of byte written
function SendStr(Str : String) : Integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Return -1 if error, else return number of byte written
procedure SetLingerOption;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Shutdown(How : Integer);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TimerClear(var tvp : TTimeVal);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function TimerCmp(var tvp : TTimeVal; var uvp : TTimeVal; IsEqual : Boolean) : Boolean;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function TimerIsSet(var tvp : TTimeVal) : Boolean;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function Wait(Timeout : integer; State : TSocketState) : Boolean;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Wait for a given event. } { Return TRUE if the event has occured or FALSE if any error or user abort
procedure WaitForClose;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure AssignDefaultValue;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ASyncReceive(var msg: TMessage);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure BindSocket;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ChangeState(NewState : TSocketState);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function CheckFWait : Boolean;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetAddr : String;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetPort : String;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetProto : String;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetRcvdCount : LongInt;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Get the number of char received and waiting to be read
function GetSendFlags : TSocketSendFlags;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure InternalClose(bShut : Boolean);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Notification(AComponent: TComponent; operation: TOperation);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure RaiseException(const Msg : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure RaiseExceptionFmt(const Fmt : String; args : array of const);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ReadLineReceive;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ReadLineStart;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SendText(Str : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SetAddr(InAddr : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SetPort(sPort : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SetProto(sProto : String);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SetSendFlags(newValue : TSocketSendFlags);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure SocketError(sockfunc: string);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerChangeState(OldState, NewState : TSocketState);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function TriggerDataAvailable(Error : Word) : Boolean;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerDataSent(Error : Word);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerDNSLookupDone(Error : Word);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerError;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerSessionAvailable(Error : Word);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerSessionClosed(Error : Word);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TriggerSessionConnected(Error : Word);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure TryToSend;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMAsyncGetHostByName(var msg: TMessage);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WMASyncSelect(var msg: TMessage);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WndProc(var MsgRec: TMessage);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
| Properties |
property Addr : string
property AllSent : Boolean
property BufSize : Integer
property DnsResult : String
property DnsResultList : TStrings
property FlushTimeout : Integer
property Handle : HWND
property HSocket : TSocket
property LastError : Integer
property LingerOnOff : TSocketLingerOnOff
property LingerTimeout : Integer
property LocalPort : Integer
property MultiThreaded : Boolean
property Port : string
property PortNum : Integer
property Proto : String
property RcvdCount : LongInt
property ReadCount : LongInt
property SendFlags : TSocketSendFlags
property State : TSocketState
property Text : String
property WaitCtrl : TWait| Events |
event OnChangeState : TChangeState
event OnDataAvailable : TDataAvailable
event OnDataSent : TDataSent
event OnDnsLookupDone : TDnsLookupDone
event OnError : TNotifyEvent
event OnLineTooLong : TNotifyEvent
event OnSessionAvailable : TSessionAvailable
event OnSessionClosed : TSessionClosed
event OnSessionConnected : TSessionConnected| Variables |
sin : TSockAddrIn;
bAllSent : Boolean;
bMoreFlag : Boolean;In seconds, 0 = disabled
bWrite : Boolean;
FAddrAssigned : Boolean;
FAddrFormat : Integer;
FAddrStr : String;
FASocket : TSocket;
FBufList : TList;
FBufSize : Integer;
FCloseInvoked : Boolean;
FDnsLookupBuffer : array [0..MAXGETHOSTSTRUCT] of char;
FDnsLookupHandle : THandle;
FDnsResult : String;
FDnsResultList : TStrings;
FFlushTimeout : Integer;
FHSocket : TSocket;
FLastError : Integer;
FLingerOnOff : TSocketLingerOnOff;
FLingerTimeout : Integer;
FLocalPort : Integer;
FMultiThreaded : Boolean;
FOnChangeState : TChangeState;
FOnDataAvailable : TDataAvailable;
FOnDataSent : TDataSent;
FOnDnsLookupDone : TDnsLookupDone;
FOnError : TNotifyEvent;
FOnLineTooLong : TNotifyEvent;
FOnSessionAvailable : TSessionAvailable;
FOnSessionClosed : TSessionClosed;
FOnSessionConnected : TSessionConnected;
FPaused : Boolean;
FPortAssigned : Boolean;
FPortNum : Integer;
FPortStr : String;
FProto : integer;
FProtoAssigned : Boolean;
FProtoStr : String;
FReadCount : LongInt;
FSendFlags : Integer;
FState : TSocketState;Accepted socket
FStateWaited : TSocketState;
FType : integer;
FWait : TWait;
FWindowHandle : HWND;
nMoreCnt : Integer;
nMoreMax : Integer;
ReadLineBuffer : String[255];
ReadLineCount : Integer;
ReadLineFlag : Boolean;