📄 overbyte.ics.wsocket.pas
字号:
FOnSendData : TSendData;
FOnDnsLookupDone : TDnsLookupDone;
FOnError : TNotifyEvent;
FOnDisplay : TDebugDisplay;
procedure WndProc(var MsgRec: TMessage); override;
procedure SocketError(sockfunc: String);
procedure WMASyncSelect(var msg: TMessage); //message WM_ASYNCSELECT;
procedure WMAsyncGetHostByName(var msg: TMessage); //message WM_ASYNCGETHOSTBYNAME;
procedure WMAsyncGetHostByAddr(var msg: TMessage); //message WM_ASYNCGETHOSTBYADDR;
procedure WMCloseDelayed(var msg: TMessage); //message WM_CLOSE_DELAYED;
procedure WMRelease(var msg: TMessage); //message WM_WSOCKET_RELEASE;
procedure ChangeState(NewState : TSocketState);
procedure TryToSend; virtual;
procedure ASyncReceive(ErrCode : Word; MySocketOptions : TWSocketOptions);
procedure AssignDefaultValue; virtual;
procedure InternalClose(bShut : Boolean; ErrCode : Word); virtual;
procedure InternalAbort(ErrCode : Word); virtual;
//procedure Notification(AComponent: TComponent; operation: TOperation); override;
procedure SetSendFlags(newValue : TSocketSendFlags);
function GetSendFlags : TSocketSendFlags;
procedure SetAddr(InAddr : String); virtual;
function GetAddr : String;
procedure SetRemotePort(sPort : String); virtual;
function GetRemotePort : String;
procedure SetLocalAddr(const sLocalAddr : String);
procedure SetLocalPort(const sLocalPort : String);
procedure SetProto(sProto : String); virtual;
function GetProto : String;
function GetRcvdCount : LongInt; virtual;
procedure BindSocket; virtual;
procedure SendText(const Str : String);
function RealSend(const Data : TBytes; Len : Integer) : Integer; virtual;
procedure RaiseExceptionFmt(const Fmt : String; args : array of const); virtual;
procedure RaiseException(const Msg : String); virtual;
// procedure HandleBackGroundException(E: Exception); virtual;
procedure TriggerDisplay(Msg : String);
procedure TriggerSendData(BytesSent : Integer); virtual;
function TriggerDataAvailable(ErrCode : Word) : Boolean; virtual;
procedure TriggerSessionAvailable(ErrCode : Word); virtual;
procedure TriggerSessionConnectedSpecial(ErrCode : Word); virtual;
procedure TriggerSessionConnected(ErrCode : Word); virtual;
procedure TriggerSessionClosed(ErrCode : Word); virtual;
procedure TriggerDataSent(ErrCode : Word); virtual;
procedure TriggerChangeState(OldState, NewState : TSocketState); virtual;
procedure TriggerDNSLookupDone(ErrCode : Word); virtual;
procedure TriggerError; virtual;
function DoRecv(out Buffer : TBytes;
BufferSize : Integer;
Flags : Integer) : Integer; virtual;
function DoRecvFrom(FHSocket : TSocket;
out Buffer : TBytes;
BufferSize : Integer;
Flags : Integer;
var From : TSockAddr;
var FromLen : Integer) : Integer; virtual;
procedure Do_FD_CONNECT(var msg: TMessage); virtual;
procedure Do_FD_READ(var msg: TMessage); virtual;
procedure Do_FD_WRITE(var msg: TMessage); virtual;
procedure Do_FD_ACCEPT(var msg: TMessage); virtual;
procedure Do_FD_CLOSE(var msg: TMessage); virtual;
procedure DupConnected; virtual;
procedure AbortComponent; override;
public
sin : TSockAddr;
constructor Create(AOwner : {$IFDEF ICS_COMPONENT}TComponent
{$ELSE}TObject{$ENDIF}); override;
destructor Destroy; override;
procedure Connect; virtual;
procedure Close; virtual;
procedure CloseDelayed; virtual;
procedure Release; virtual;
procedure Abort; virtual;
procedure Flush; virtual;
procedure WaitForClose; virtual;
procedure Listen; virtual;
function Accept: TSocket; virtual;
function Receive(out Buffer : TBytes; BufferSize: Integer) : Integer; overload; virtual;
function Receive(out Buffer : TBytes; Offset, BufferSize: Integer) : Integer; overload; virtual;
function ReceiveStr : String; virtual;
function ReceiveFrom(out Buffer : TBytes;
BufferSize : Integer;
var From : TSockAddr;
var FromLen : Integer) : Integer; virtual;
function PeekData(out Buffer : TBytes; BufferSize: Integer) : Integer;
function Send(const Data : TBytes; Len : Integer) : Integer; overload; virtual;
function Send(Data : Byte) : Integer; overload; virtual;
function SendTo(Dest : TSockAddr;
DestLen : Integer;
const Data : TBytes;
Len : Integer) : Integer; virtual;
function SendStr(const Str : String) : Integer; virtual;
procedure DnsLookup(const HostName : String); virtual;
procedure ReverseDnsLookup(const HostAddr: String); virtual;
procedure CancelDnsLookup; virtual;
function GetPeerAddr: String; virtual;
function GetPeerPort: String; virtual;
function GetPeerName(var Name : TSockAddrIn;
NameLen : Integer) : Integer; virtual;
function GetXPort: String; virtual;
function GetXAddr: String; virtual;
function TimerIsSet(var tvp : TTimeVal) : Boolean; virtual;
procedure TimerClear(var tvp : TTimeVal); virtual;
function TimerCmp(var tvp : TTimeVal; var uvp : TTimeVal; IsEqual : Boolean) : Boolean; virtual;
function GetSockName(out saddr : TSockAddrIn;
var saddrlen : Integer) : Integer; virtual;
procedure SetLingerOption;
procedure Dup(NewHSocket : TSocket); virtual;
procedure Shutdown(How : Integer); virtual;
procedure Pause; virtual;
procedure Resume; virtual;
procedure PutDataInSendBuffer(const Data : TBytes; Len : Integer);
procedure PutStringInSendBuffer(const Str : String);
procedure DeleteBufferedData;
procedure ThreadAttach; override;
procedure ThreadDetach; override;
property Terminated : Boolean read FTerminated
write FTerminated;
property OnMessagePump : TNotifyEvent read FOnMessagePump
write FOnMessagePump;
protected
property PortNum : Integer read FPortNum;
property Handle : HWND read FWindowHandle;
property HSocket : TSocket read FHSocket
write Dup;
property Addr : String read GetAddr
write SetAddr;
property Port : String read GetRemotePort
write SetRemotePort;
property LocalPort : String read FLocalPortStr
write SetLocalPort;
property LocalAddr : String read FLocalAddr
write SetLocalAddr;
property Proto : String read GetProto
write SetProto;
property MultiCast : Boolean read FMultiCast
write FMultiCast;
property MultiCastAddrStr: String read FMultiCastAddrStr
write FMultiCastAddrStr;
property MultiCastIpTTL : Integer read FMultiCastIpTTL
write FMultiCastIpTTL;
property ReuseAddr : Boolean read FReuseAddr
write FReuseAddr;
property PeerAddr : String read GetPeerAddr;
property PeerPort : String read GetPeerPort;
property DnsResult : String read FDnsResult;
property DnsResultList : TStrings read FDnsResultList;
property State : TSocketState read FState;
property AllSent : Boolean read bAllSent;
property ReadCount : LongInt read FReadCount;
property RcvdCount : LongInt read GetRcvdCount;
property LastError : Integer read FLastError;
property ComponentOptions : TWSocketOptions read FComponentOptions
write FComponentOptions;
property BufSize : Integer read FBufSize
write FBufSize;
property ListenBacklog : Integer read FListenBacklog
write FListenBacklog;
property OnDataAvailable : TDataAvailable read FOnDataAvailable
write FOnDataAvailable;
property OnDataSent : TDataSent read FOnDataSent
write FOnDataSent;
property OnSendData : TSendData read FOnSendData
write FOnSendData;
property OnSessionClosed : TSessionClosed read FOnSessionClosed
write FOnSessionClosed;
property OnSessionAvailable : TSessionAvailable read FOnSessionAvailable
write FOnSessionAvailable;
property OnSessionConnected : TSessionConnected read FOnSessionConnected
write FOnSessionConnected;
property OnChangeState : TChangeState read FOnChangeState
write FOnChangeState;
property OnDnsLookupDone : TDnsLookupDone read FOnDnsLookupDone
write FOnDnsLookupDone;
property OnError : TNotifyEvent read FOnError
write FOnError;
property FlushTimeout : Integer read FFlushTimeOut
write FFlushTimeout;
property SendFlags : TSocketSendFlags read GetSendFlags
write SetSendFlags;
property Text: String read ReceiveStr
write SendText;
property LingerOnOff : TSocketLingerOnOff read FLingerOnOff
write FLingerOnOff;
property LingerTimeout : Integer read FLingerTimeout
write FLingerTimeout;
property OnDisplay : TDebugDisplay read FOnDisplay
write FOnDisplay;
end;
TSocksState = (socksData, socksNegociateMethods,
socksAuthenticate, socksConnect);
TSocksAuthentication = (socksNoAuthentication,
socksAuthenticateUsercode);
TSocksAuthState = (socksAuthStart, socksAuthSuccess,
socksAuthFailure, socksAuthNotRequired);
TSocksAuthStateEvent = procedure(Sender : TObject;
AuthState : TSocksAuthState) of object;
TSocksErrorEvent = procedure(Sender : TObject;
ErrCode : Integer;
Msg : String) of Object;
TCustomSocksWSocket = class(TCustomWSocket)
protected
FSocksState : TSocksState;
FSocksServer : String;
FSocksLevel : String;
FSocksPort : String;
FSocksPortAssigned : Boolean;
FSocksServerAssigned : Boolean;
FSocksUsercode : String;
FSocksPassword : String;
FSocksAuthentication : TSocksAuthentication;
FSocksAuthNumber : char;
FBoundAddr : String;
FBoundPort : String;
FRcvBuf : TBytes;
FRcvCnt : Integer;
FSocksRcvdCnt : Integer;
FSocksRcvdPtr : Integer;
FOnSocksError : TSocksErrorEvent;
FOnSocksConnected : TSessionConnected;
FOnSocksAuthState : TSocksAuthStateEvent;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -