www.pudn.com > IPXControl.rar > ServerUnit.pas
unit ServerUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, IPXCtl, StdCtrls, ScktComp;
type
TForm1 = class(TForm)
StatusBar1: TStatusBar;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
IPXServerSocket1: TIPXServerSocket;
procedure IPXServerSocket1Listen(Sender: TObject; Socket: Cardinal);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure IPXServerSocket1ClientConnected(Sender: TObject;
Socket: Cardinal);
procedure IPXServerSocket1Read(Sender: TObject; Socket: Cardinal);
procedure IPXServerSocket1ClientDisconnect(Sender: TObject;
Socket: Cardinal);
procedure IPXServerSocket1Error(Sender: TObject; ErrMsg: String);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.IPXServerSocket1Listen(Sender: TObject; Socket: Cardinal);
begin
Statusbar1.Panels[0].Text := '正在侦听...';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IPXServerSocket1.Open;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
IPXServerSocket1.Close;
end;
procedure TForm1.IPXServerSocket1ClientConnected(Sender: TObject;
Socket: Cardinal);
begin
Statusbar1.Panels[0].Text := IntToStr(IPXServerSocket1.ActiveClientCount)+'个用户';
end;
procedure TForm1.IPXServerSocket1Read(Sender: TObject; Socket: Cardinal);
var
Buf : array[0..4095] of char;
begin
ZeroMemory(@Buf, 4096);
IPXServerSocket1.RecvBuf(Socket,Buf, sizeof(Buf));
Edit1.Text := Buf;
end;
procedure TForm1.IPXServerSocket1ClientDisconnect(Sender: TObject;
Socket: Cardinal);
begin
Statusbar1.Panels[0].Text := IntToStr(IPXServerSocket1.ActiveClientCount)+'个用户';
end;
procedure TForm1.IPXServerSocket1Error(Sender: TObject; ErrMsg: String);
begin
Statusbar1.Panels[0].Text := ErrMsg;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer;
str : string;
begin
str := Edit2.Text;
for i := 0 to IPXServerSocket1.ActiveClientCount - 1 do
IPXServerSocket1.SendBuf(IPXServerSocket1.Connections[i],Pointer(str)^,Length(str));
Edit2.Text := '';
end;
end.