unit UntTBaseSocketClient;
interface
uses SysUtils, IdTCPConnection, IdSocks, idstack,IdTCPClient;
type
Pint = ^integer;
TBaseSocketClient = class
protected
procedure OnCreate; dynamic;
procedure OnDestory; dynamic;
public
ExeGIDStack: TIdStack;
Client: TIdTCPClient;
function GetHead: Integer; //读取报头
procedure SendHead(ICmd: Integer); //发送报头
procedure SendObject(IObj: TObject); //发送对象
procedure GetObject(IObj: TObject; IClass: TClass); overload;
//接收对象 自己根据类之类来创建对象
procedure GetObject(IObj: TObject); overload; //由外部代入已经创建好的对象
procedure SendZipFile(IFileName: string); //发送压缩文件
procedure GetZipFile(IFileName: string); //接收压缩文件
constructor Create(IHost: string = '127.0.0.1'; IPort: Integer = 0); overload;
constructor Create(const ProxyHost: string; ProxyPort: Integer;
ProxyUser, ProxyPassword: string); overload;
destructor Destroy; override;
end;implementationuses Classes, untfunctions;{ TBaseSocketClient }constructor TBaseSocketClient.Create(IHost: string = '127.0.0.1'; IPort:
Integer = 0);
begin
Client := TIdTCPClient.Create(Client);
Client.Host := IHost;
Client.Port := IPort;
if (ExeGIDStack <> nil) and (GStack = nil) then
ExeGIDStack := GStack;
OnCreate;
end;destructor TBaseSocketClient.Destroy;
begin
try
OnDestory;
if Client.Connected then
Client.Disconnect;
Client.Free;
Client := nil;
except
end;
inherited;
end;function TBaseSocketClient.GetHead: Integer;
begin
Result := Client.ReadInteger;
//[DCC Error] UntTBaseSocketClient.pas(61): E2003 Undeclared identifier: 'ReadInteger'
end;……d2007
interface
uses SysUtils, IdTCPConnection, IdSocks, idstack,IdTCPClient;
type
Pint = ^integer;
TBaseSocketClient = class
protected
procedure OnCreate; dynamic;
procedure OnDestory; dynamic;
public
ExeGIDStack: TIdStack;
Client: TIdTCPClient;
function GetHead: Integer; //读取报头
procedure SendHead(ICmd: Integer); //发送报头
procedure SendObject(IObj: TObject); //发送对象
procedure GetObject(IObj: TObject; IClass: TClass); overload;
//接收对象 自己根据类之类来创建对象
procedure GetObject(IObj: TObject); overload; //由外部代入已经创建好的对象
procedure SendZipFile(IFileName: string); //发送压缩文件
procedure GetZipFile(IFileName: string); //接收压缩文件
constructor Create(IHost: string = '127.0.0.1'; IPort: Integer = 0); overload;
constructor Create(const ProxyHost: string; ProxyPort: Integer;
ProxyUser, ProxyPassword: string); overload;
destructor Destroy; override;
end;implementationuses Classes, untfunctions;{ TBaseSocketClient }constructor TBaseSocketClient.Create(IHost: string = '127.0.0.1'; IPort:
Integer = 0);
begin
Client := TIdTCPClient.Create(Client);
Client.Host := IHost;
Client.Port := IPort;
if (ExeGIDStack <> nil) and (GStack = nil) then
ExeGIDStack := GStack;
OnCreate;
end;destructor TBaseSocketClient.Destroy;
begin
try
OnDestory;
if Client.Connected then
Client.Disconnect;
Client.Free;
Client := nil;
except
end;
inherited;
end;function TBaseSocketClient.GetHead: Integer;
begin
Result := Client.ReadInteger;
//[DCC Error] UntTBaseSocketClient.pas(61): E2003 Undeclared identifier: 'ReadInteger'
end;……d2007
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货