?? wsocket.pas
字號(hào):
procedure TriggerSocksError(Error : Integer; Msg : String); virtual;
procedure TriggerSocksAuthState(AuthState : TSocksAuthState);
function GetRcvdCount : LongInt; override;
procedure SetSocksLevel(newValue : String);
function DoRecv(var Buffer;
BufferSize : Integer;
Flags : Integer) : Integer; override;
procedure SocksDoConnect;
procedure SocksDoAuthenticate;
procedure DataAvailableError(ErrCode : Integer; Msg : String);
public
procedure Connect; override;
procedure Listen; override;
protected
property SocksServer : String read FSocksServer
write SetSocksServer;
property SocksLevel : String read FSocksLevel
write SetSocksLevel;
property SocksPort : String read FSocksPort
write SetSocksPort;
property SocksUsercode : String read FSocksUsercode
write FSocksUsercode;
property SocksPassword : String read FSocksPassword
write FSocksPassword;
property SocksAuthentication : TSocksAuthentication
read FSocksAuthentication
write FSocksAuthentication;
property OnSocksError : TSocksErrorEvent read FOnSocksError
write FOnSocksError;
property OnSocksConnected : TSessionConnected read FOnSocksConnected
write FOnSocksConnected;
property OnSocksAuthState : TSocksAuthStateEvent
read FOnSocksAuthState
write FOnSocksAuthState;
end;
TCustomLineWSocket = class (TCustomSocksWSocket)
protected
FRcvdPtr : PChar;
FRcvBufSize : Integer;
FRcvdCnt : Integer;
FLineEnd : String;
FLineMode : Boolean;
FLineLength : Integer; { When a line is available }
FLineReceivedFlag : Boolean;
FLineEcho : Boolean; { Echo received data }
FLineEdit : Boolean; { Edit received data }
FTimeout : LongInt; { Given in milliseconds }
FTimeStop : LongInt; { Milliseconds }
procedure WndProc(var MsgRec: TMessage); override;
procedure WMTriggerDataAvailable(var msg: TMessage); message WM_TRIGGER_DATA_AVAILABLE;
function TriggerDataAvailable(Error : Word) : Boolean; override;
procedure TriggerSessionClosed(Error : Word); override;
procedure SetLineMode(newValue : Boolean); virtual;
procedure EditLine(var Len : Integer); virtual;
function GetRcvdCount : LongInt; override;
function DoRecv(var Buffer;
BufferSize : Integer;
Flags : Integer) : Integer; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property LineLength : Integer read FLineLength;
published
property LineMode : Boolean read FLineMode
write SetLineMode;
property LineEnd : String read FLineEnd
write FLineEnd;
property LineEcho : Boolean read FLineEcho
write FLineEcho;
property LineEdit : Boolean read FLineEdit
write FLineEdit;
end;
TCustomSyncWSocket = class(TCustomLineWSocket)
protected
FLinePointer : ^String;
function Synchronize(Proc : TWSocketSyncNextProc; var DoneFlag : Boolean) : Integer; virtual;
function WaitUntilReady(var DoneFlag : Boolean) : Integer; virtual;
procedure InternalDataAvailable(Sender: TObject; Error: Word);
public
procedure ReadLine(Timeout : integer; var Buffer : String);
end;
TWSocket = class(TCustomSyncWSocket)
public
property PortNum;
property Handle;
property HSocket;
property BufSize;
property Text;
property AllSent;
{$IFDEF VER80}
property TrumpetCompability;
{$ENDIF}
property OnDisplay;
published
property Addr;
property Port;
property Proto;
property LocalAddr;
property LocalPort;
property PeerPort;
property PeerAddr;
property DnsResult;
property DnsResultList;
property State;
property ReadCount;
property RcvdCount;
property LastError;
property MultiThreaded;
property ComponentOptions;
property OnDataAvailable;
property OnDataSent;
property OnSendData;
property OnSessionClosed;
property OnSessionAvailable;
property OnSessionConnected;
property OnSocksConnected;
property OnChangeState;
property OnLineTooLong;
property OnDnsLookupDone;
property OnError;
property OnBgException;
property FlushTimeout;
property SendFlags;
property LingerOnOff;
property LingerTimeout;
property SocksLevel;
property SocksServer;
property SocksPort;
property SocksUsercode;
property SocksPassword;
property SocksAuthentication;
property OnSocksError;
property OnSocksAuthState;
end;
TSocksWSocket = class(TWSocket)
end;
procedure Register;
function WinsockInfo : TWSADATA;
function WSocketErrorDesc(error: integer) : string;
function WSocketGetHostByAddr(Addr : String) : PHostEnt;
function WSocketGetHostByName(Name : String) : PHostEnt;
function LocalHostName : String;
function LocalIPList : TStrings;
function WSocketResolveIp(IpAddr : String) : String;
function WSocketResolveHost(InAddr : String) : TInAddr;
function WSocketResolvePort(Port : String; Proto : String) : Word;
function WSocketResolveProto(sProto : String) : integer;
procedure WSocketForceLoadWinsock;
procedure WSocketCancelForceLoadWinsock;
procedure WSocketUnloadWinsock;
function WSocketIsDottedIP(const S : String) : Boolean;
{ function WSocketLoadWinsock : Boolean; 14/02/99 }
type
{$IFDEF VER80}
DWORD = LongInt;
TWSAStartup = function (wVersionRequired: word;
var WSData: TWSAData): Integer;
TWSACleanup = function : Integer;
TWSASetLastError = procedure (iError: Integer);
TWSAGetLastError = function : Integer;
TWSACancelAsyncRequest = function (hAsyncTaskHandle: THandle): Integer;
TWSAAsyncGetHostByName = function (HWindow: HWND;
wMsg: u_int;
name, buf: PChar;
buflen: Integer): THandle;
TWSAAsyncGetHostByAddr = function (HWindow: HWND;
wMsg: u_int; addr: PChar;
len, Struct: Integer;
buf: PChar;
buflen: Integer): THandle;
TWSAAsyncSelect = function (s: TSocket;
HWindow: HWND;
wMsg: u_int;
lEvent: Longint): Integer;
TGetServByName = function (name, proto: PChar): PServEnt;
TGetProtoByName = function (name: PChar): PProtoEnt;
TGetHostByName = function (name: PChar): PHostEnt;
TGetHostByAddr = function (addr: Pointer; len, Struct: Integer): PHostEnt;
TGetHostName = function (name: PChar; len: Integer): Integer;
TOpenSocket = function (af, Struct, protocol: Integer): TSocket;
TShutdown = function (s: TSocket; how: Integer): Integer;
TSetSockOpt = function (s: TSocket; level, optname: Integer;
optval: PChar;
optlen: Integer): Integer;
TGetSockOpt = function (s: TSocket; level, optname: Integer; optval: PChar; var optlen: Integer): Integer;
TSendTo = function (s: TSocket; var Buf;
len, flags: Integer;
var addrto: TSockAddr;
tolen: Integer): Integer;
TSend = function (s: TSocket; var Buf;
len, flags: Integer): Integer;
TRecv = function (s: TSocket;
var Buf;
len, flags: Integer): Integer;
TRecvFrom = function (s: TSocket;
var Buf; len, flags: Integer;
var from: TSockAddr;
var fromlen: Integer): Integer;
Tntohs = function (netshort: u_short): u_short;
Tntohl = function (netlong: u_long): u_long;
TListen = function (s: TSocket; backlog: Integer): Integer;
TIoctlSocket = function (s: TSocket; cmd: DWORD;
var arg: u_long): Integer;
TInet_ntoa = function (inaddr: TInAddr): PChar;
TInet_addr = function (cp: PChar): u_long;
Thtons = function (hostshort: u_short): u_short;
Thtonl = function (hostlong: u_long): u_long;
TGetSockName = function (s: TSocket; var name: TSockAddr;
var namelen: Integer): Integer;
TGetPeerName = function (s: TSocket; var name: TSockAddr;
var namelen: Integer): Integer;
TConnect = function (s: TSocket; var name: TSockAddr;
namelen: Integer): Integer;
TCloseSocket = function (s: TSocket): Integer;
TBind = function (s: TSocket; var addr: TSockAddr;
namelen: Integer): Integer;
TAccept = function (s: TSocket; var addr: TSockAddr;
var addrlen: Integer): TSocket;
{$ELSE}
TWSAStartup = function (wVersionRequired: word;
var WSData: TWSAData): Integer; stdcall;
TWSACleanup = function : Integer; stdcall;
TWSASetLastError = procedure (iError: Integer); stdcall;
TWSAGetLastError = function : Integer; stdcall;
TWSACancelAsyncRequest = function (hAsyncTaskHandle: THandle): Integer; stdcall;
TWSAAsyncGetHostByName = function (HWindow: HWND;
wMsg: u_int;
name, buf: PChar;
buflen: Integer): THandle; stdcall;
TWSAAsyncGetHostByAddr = function (HWindow: HWND;
wMsg: u_int; addr: PChar;
len, Struct: Integer;
buf: PChar;
buflen: Integer): THandle; stdcall;
TWSAAsyncSelect = function (s: TSocket;
HWindow: HWND;
wMsg: u_int;
lEvent: Longint): Integer; stdcall;
TGetServByName = function (name, proto: PChar): PServEnt; stdcall;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -