继续上一节
服务端:
//------>在ClientRead中可取得客户端活动ID,IP,PORT,以及其它信息
procedure TForm2.SSKServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
smsg,sRemoteaddress,sRemotePort,sRemoteHost:string;
i:integer;//取得活动ID
begin
smsg:= TRIM(Socket.ReceiveText);
I:=SSKServer.Socket.ActiveConnections;
sRemoteaddress:=SSKServer.Socket.Connections[I-1].RemoteAddress;
sRemoteHost:=SSKSERVER.Socket.Connections[I-1].RemoteHost;
sRemotePort:=SSKSERVER.Socket.Connections[I-1].RemotePort.TOSTRING;
memo1.lines.add(smsg);
memo1.lines.add(sRemoteaddress);
memo1.lines.add(sRemoteHost);
memo1.lines.add(sRemotePort);
end;
客户端
uses
System.SysUtils, System.Classes, System.Win.ScktComp;
type
Tdmclient = class(TDataModule)
SCKClient: TClientSocket;
procedure SCKClientConnect(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
const
c_ScreenWidth = 800;
c_ScreenHeight = 600;
{通信消息标识}
c_Msg = 'MSG';
c_Connect = 'Connect';
c_Close = 'Close';
c_DisConnect = 'Disconnect';
c_OpenAccount = 'OpenAccount';
{局域,远程标识}
c_Lan = 'Lan';
c_Remote = 'Rem';
{权限Check表示符}
c_Check = '+';
c_UnCheck = '-';
{用于树型结构}
C_CharArray = 'ABCDEFGH';
{星期数组}
sWeek: array[1..7] of string = ('日', '一', '二', '叁', '四', '五', '六');
var
dmclient: Tdmclient;
implementation
{%CLASSGROUP 'Vcl.Controls.TControl'}
{$R *.dfm}
procedure Tdmclient.SCKClientConnect(Sender: TObject; Socket: TCustomWinSocket);
var
shost:string;
begin
//Socket.SendText('您好') ;
shost:=socket.LocalHost;
SCKClient.Socket.Sendtext(c_Connect+'_'+sHost);
end;
end.
结果如下:
Connect_win7server
192.168.8.3
win7server.home
4886