kolmck/Addons/mckTCPSocket.pas

290 lines
9.0 KiB
ObjectPascal

unit mckTCPSocket;
interface
uses
Windows, Classes, Messages, Winsock, Forms, SysUtils, kolTCPSocket, mirror;
type
TKOLTCPClient = class(TKOLObj)
private
FPort: smallint;
FHost: string;
FOnConnect: TOnTCPConnect;
FOnDisconnect: TOnTCPDisconnect;
FOnError: TOnTCPError;
FOnReceive: TOnTCPReceive;
// FOnResolve: TOnTCPResolve;
FOnManualReceive: TOnTCPManualReceive;
FOnStreamReceive: TOnTCPStreamReceive;
FOnStreamSend: TOnTCPStreamSend;
procedure SetHost(const Value: string);
procedure SetOnConnect(const Value: TOnTCPConnect);
procedure SetOnDisconnect(const Value: TOnTCPDisconnect);
procedure SetOnError(const Value: TOnTCPError);
procedure SetOnReceive(const Value: TOnTCPReceive);
// procedure SetOnResolve(const Value: TOnTCPResolve);
procedure SetPort(const Value: smallint);
procedure SetOnManualReceive(const Value: TOnTCPManualReceive);
procedure SetOnStreamReceive(const Value: TOnTCPStreamReceive);
procedure SetOnStreamSend(const Value: TOnTCPStreamSend);
protected
function AdditionalUnits: string; override;
procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override;
procedure SetupLast( SL: TStringList; const AName, AParent, Prefix: String ); override;
procedure AssignEvents( SL: TStringList; const AName: String ); override;
public
published
property Host:string read FHost write SetHost;
property Port:smallint read FPort write SetPort;
property OnDisconnect:TOnTCPDisconnect read FOnDisconnect write SetOnDisconnect;
property OnError:TOnTCPError read FOnError write SetOnError;
property OnReceive:TOnTCPReceive read FOnReceive write SetOnReceive;
property OnManualReceive:TOnTCPManualReceive read FOnManualReceive write SetOnManualReceive;
property OnStreamSend:TOnTCPStreamSend read FOnStreamSend write SetOnStreamSend;
property OnStreamReceive:TOnTCPStreamReceive read FOnStreamReceive write SetOnStreamReceive;
property OnConnect:TOnTCPConnect read FOnConnect write SetOnConnect;
end;
TKOLTCPServer = class(TKOLObj)
private
FPort: smallint;
FOnClientError: TOnTCPError;
FOnAccept: TOnTCPAccept;
FOnError: TOnTCPError;
FOnConnect: TOnTCPConnect;
FOnClientReceive: TOnTCPReceive;
FOnClientConnect: TOnTCPClientConnect;
FOnClientDisconnect: TOnTCPDisconnect;
FOnClientManualReceive: TOnTCPManualReceive;
FOnClientStreamReceive: TOnTCPStreamReceive;
FOnClientStreamSend: TOnTCPStreamSend;
procedure SetOnAccept(const Value: TOnTCPAccept);
procedure SetOnError(const Value: TOnTCPError);
procedure SetPort(const Value: smallint);
procedure SetOnConnect(const Value: TOnTCPConnect);
procedure SetOnClientError(const Value: TOnTCPError);
procedure SetOnClientReceive(const Value: TOnTCPReceive);
procedure SetOnClientConnect(const Value: TOnTCPClientConnect);
procedure SetOnClientDisconnect(const Value: TOnTCPDisconnect);
procedure SetOnClientManualReceive(const Value: TOnTCPManualReceive);
procedure SetOnClientStreamReceive(const Value: TOnTCPStreamReceive);
procedure SetOnClientStreamSend(const Value: TOnTCPStreamSend);
protected
function AdditionalUnits: string; override;
procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override;
procedure SetupLast( SL: TStringList; const AName, AParent, Prefix: String ); override;
procedure AssignEvents( SL: TStringList; const AName: String ); override;
public
published
property Port:smallint read FPort write SetPort;
property OnAccept:TOnTCPAccept read FOnAccept write SetOnAccept;
property OnError:TOnTCPError read FOnError write SetOnError;
property OnConnect:TOnTCPConnect read FOnConnect write SetOnConnect;
property OnClientError:TOnTCPError read FOnClientError write SetOnClientError;
property OnClientReceive:TOnTCPReceive read FOnClientReceive write SetOnClientReceive;
property OnClientManualReceive:TOnTCPManualReceive read FOnClientManualReceive write SetOnClientManualReceive;
property OnClientConnect:TOnTCPClientConnect read FOnClientConnect write SetOnClientConnect;
property OnClientDisconnect:TOnTCPDisconnect read FOnClientDisconnect write SetOnClientDisconnect;
property OnClientStreamSend:TOnTCPStreamSend read FOnClientStreamSend write SetOnClientStreamSend;
property OnClientStreamReceive:TOnTCPStreamReceive read FOnClientStreamReceive write SetOnClientStreamReceive;
end;
procedure Register;
implementation
{$R *.dcr}
procedure Register;
begin
RegisterComponents('KOLAddons', [TKOLTCPClient,TKOLTCPServer]);
end;
{ TKOLTCPClient }
function TKOLTCPClient.AdditionalUnits;
begin
result:=', kolTCPSocket';
end;
procedure TKOLTCPClient.SetupFirst(SL: TStringList; const AName, AParent, Prefix: String);
begin
sl.add(prefix+aname+':=newtcpclient;');
sl.add(prefix+aname+'.port:='+inttostr(fport)+';');
sl.add(prefix+aname+'.host:='#39+fhost+#39';');
end;
procedure TKOLTCPClient.SetupLast(SL: TStringList; const AName, AParent, Prefix: String);
begin
//
end;
procedure TKOLTCPClient.AssignEvents(SL: TStringList; const AName: String);
begin
inherited;
doassignevents(sl,aname,
['OnConnect','OnDisconnect','OnError','OnReceive','OnManualReceive',
'OnStreamSend','OnStreamReceive'],
[@OnConnect,@OnDisconnect,@OnError,@OnReceive,@OnManualReceive,
@OnStreamSend,@OnStreamReceive]);
end;
procedure TKOLTCPClient.SetHost(const Value: string);
begin
FHost := Value;
change;
end;
procedure TKOLTCPClient.SetOnConnect(const Value: TOnTCPConnect);
begin
FOnConnect := Value;
change;
end;
procedure TKOLTCPClient.SetOnDisconnect(const Value: TOnTCPDisconnect);
begin
FOnDisconnect := Value;
change;
end;
procedure TKOLTCPClient.SetOnError(const Value: TOnTCPError);
begin
FOnError := Value;
change;
end;
procedure TKOLTCPClient.SetOnReceive(const Value: TOnTCPReceive);
begin
FOnReceive := Value;
change;
end;
{procedure TKOLTCPClient.SetOnResolve(const Value: TOnTCPResolve);
begin
FOnResolve := Value;
change;
end;
}
procedure TKOLTCPClient.SetPort(const Value: smallint);
begin
FPort := Value;
change;
end;
procedure TKOLTCPClient.SetOnManualReceive( const Value: TOnTCPManualReceive);
begin
FOnManualReceive := Value;
change;
end;
procedure TKOLTCPClient.SetOnStreamReceive(const Value: TOnTCPStreamReceive);
begin
FOnStreamReceive := Value;
change;
end;
procedure TKOLTCPClient.SetOnStreamSend(const Value: TOnTCPStreamSend);
begin
FOnStreamSend := Value;
change;
end;
{ TKOLTCPServer }
function TKOLTCPServer.AdditionalUnits: string;
begin
result:=', kolTCPSocket';
end;
procedure TKOLTCPServer.AssignEvents(SL: TStringList;
const AName: String);
begin
inherited;
doassignevents(sl,aname,
['OnConnect','OnAccept','OnError','OnClientError','OnClientConnect','OnClientDisconnect','OnClientReceive',
'OnClientManualReceive','OnClientStreamSend','OnClientStreamReceive'],
[@OnConnect,@OnAccept,@OnError,@OnClientError,@OnClientConnect,@OnClientDisconnect,@OnClientReceive,
@OnClientManualReceive,@OnClientStreamSend,@OnClientStreamReceive]);
end;
procedure TKOLTCPServer.SetOnConnect(const Value: TOnTCPConnect);
begin
FOnConnect := Value;
change;
end;
procedure TKOLTCPServer.SetOnAccept(const Value: TOnTCPAccept);
begin
FOnAccept := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientConnect( const Value: TOnTCPClientConnect);
begin
FOnClientConnect := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientDisconnect( const Value: TOnTCPDisconnect);
begin
FOnClientDisconnect := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientError(const Value: TOnTCPError);
begin
FOnClientError := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientManualReceive( const Value: TOnTCPManualReceive);
begin
FOnClientManualReceive := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientReceive(const Value: TOnTCPReceive);
begin
FOnClientReceive := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientStreamReceive( const Value: TOnTCPStreamReceive);
begin
FOnClientStreamReceive := Value;
change;
end;
procedure TKOLTCPServer.SetOnClientStreamSend( const Value: TOnTCPStreamSend);
begin
FOnClientStreamSend := Value;
change;
end;
procedure TKOLTCPServer.SetOnError(const Value: TOnTCPError);
begin
FOnError := Value;
change;
end;
procedure TKOLTCPServer.SetPort(const Value: smallint);
begin
FPort := Value;
change;
end;
procedure TKOLTCPServer.SetupFirst(SL: TStringList; const AName, AParent, Prefix: String);
begin
sl.add(prefix+aname+':=newtcpserver;');
sl.add(prefix+aname+'.port:='+inttostr(fport)+';');
end;
procedure TKOLTCPServer.SetupLast(SL: TStringList; const AName, AParent, Prefix: String);
begin
//
end;
end.