procedure TForm1.FormCreate(Sender: TObject);
begin
listen1click(nil);
end;
procedure TForm1.listen1Click(Sender: TObject);
begin
memo1.Lines.Clear;
memo2.Lines.Clear;
listen1.Checked:=not listen1.Checked;
if listen1.Checked then
begin
clientsocket1.Active:=false;
serversocket1.Active:=true;
statusbar1.Panels[0].Text:='listening......';
end
else
begin
if serversocket1.Active then
serversocket1.Active:=false;
clientsocket1.Active:=true;
statusbar1.Panels[0].Text:='';
end;
end;
procedure TForm1.connect1Click(Sender: TObject);
begin
if clientsocket1.Active then
clientsocket1.Active:=false;
server := '192.168.1.';
if inputquery('computer to connect to ','address name:',server) then
if length(server)>0 then
with clientsocket1 do
begin
Address:=server;
try
active:=true;
except
end;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.Panels[0].Text:='connected to : '+socket.RemoteHost;
Client_Flag := true;
end;
procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
isserver:=true;
statusbar1.Panels[0].Text:='connected to : '+socket.RemoteAddress;
Server_Flag := true;
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Add(socket.receivetext)
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Add(socket.ReceiveText);
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
memo2.Lines.Add('error connecting to: '+server);
errorcode:=0;
end;
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_return then
begin
if Server_Flag then
serversocket1.socket.connections[0].sendtext(memo1.lines[memo1.lines.count-1])
else
ClientSocket1.Socket.SendText(memo1.lines[memo1.lines.count-1]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.connect1Click(Sender);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
end;
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode := 0;
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StatusBar1.Panels[0].Text := '断开';
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StatusBar1.Panels[0].Text := '断开';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Client_Flag then
ClientSocket1.Active := False;
if Server_Flag then
serversocket1.socket.connections[0].Close;
end;
procedure TForm1.NonConnect1Click(Sender: TObject);
begin
Form1.Button2Click(Sender);
end;