我第一次用这个东西,不知道该怎么用
还有 serverSocket:=TServerWinSocket.Create(100000);//帮助里说Create中要传
//入一个TSocket类型(实际上是一个Integer)不知道该写什么,请教一下。
请有用过这个东西的大哥大姐介绍一下用法
还有 serverSocket:=TServerWinSocket.Create(100000);//帮助里说Create中要传
//入一个TSocket类型(实际上是一个Integer)不知道该写什么,请教一下。
请有用过这个东西的大哥大姐介绍一下用法
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, ComCtrls, StdCtrls, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Z1: TMenuItem;
L1: TMenuItem;
C1: TMenuItem;
N1: TMenuItem;
X1: TMenuItem;
Memo1: TMemo;
StatusBar1: TStatusBar;
Memo2: TMemo;
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
procedure L1Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
private
IsServer: boolean;
Server :AnsiString;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.L1Click(Sender: TObject);
begin
L1.Checked :=not L1.Checked ;
if L1.Checked then
begin
Clientsocket1.Active :=false;
serversocket1.Active :=true;
statusbar1.SimpleText :='监听...';
end
else
begin
if serversocket1.Active then
serversocket1.Active :=false;
statusbar1.SimpleText :='';
end;
end;procedure TForm1.C1Click(Sender: TObject);
begin
if clientsocket1.Active then
clientsocket1.Active :=false;
if inputquery('Computer to connect to','Address Name:',server) then
if length(server) >0 then
begin
clientsocket1.Host :=server;
clientsocket1.Active :=true;
L1.Checked :=false;
end;
end;procedure TForm1.N1Click(Sender: TObject);
begin
clientsocket1.Active :=false;
serversocket1.Active :=true;
statusbar1.SimpleText :='监听...';
end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
if IsServer then
serversocket1.Socket.Connections[0].SendText(memo1.Lines.Strings[memo1.Lines.count-1])
else
clientsocket1.Socket.SendText(memo1.Lines.Strings[memo1.Lines.count-1] );
end;procedure TForm1.FormCreate(Sender: TObject);
begin
L1click(nil);
end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.SimpleText :='连接到:'+Socket.RemoteHost ;end;procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
L1Click(nil);
end;procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Memo2.Lines.Add('连接到:'+Server+'时发生错误');
ErrorCode:=0;
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText() ) ;end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
IsServer:=true;
StatusBar1.SimpleText:='连接到:'+Socket.RemoteAddress ;end;procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Clear() ;end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.SimpleText:='监听...' ;
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText() );end;end.