Class TCustomWSocket (unit WSocket)

Inherits from

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;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { 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.

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.

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;



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;