?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer,StrUtils;
type
TTFormMain = class(TForm)
IdTCPServer: TIdTCPServer;
Label1: TLabel;
EdtPort: TEdit;
Label2: TLabel;
EdtData: TEdit;
Label3: TLabel;
LbLog: TEdit;
BtnStart: TButton;
BtnStop: TButton;
procedure BtnStartClick(Sender: TObject);
procedure BtnStopClick(Sender: TObject);
procedure IdTCPServerConnect(AThread: TIdPeerThread);
procedure IdTCPServerExecute(AThread: TIdPeerThread);
private
{ Private declarations }
public
{ Public declarations }
end;
var
TFormMain: TTFormMain;
implementation
{$R *.dfm}
procedure TTFormMain.BtnStartClick(Sender: TObject);
begin
IdTCPServer.DefaultPort:= StrToInt(EdtPort.Text);
IdTCPServer.Active := True;
BtnStart.Enabled := False;
BtnStop.Enabled := True;
LbLog.Text:=('服務器已成功啟動!');
end;
procedure TTFormMain.BtnStopClick(Sender: TObject);
begin
IdTCPServer.Active := False;
BtnStart.Enabled := True;
BtnStop.Enabled := False;
LbLog.Text:=('服務器已成功停止!');
end;
procedure TTFormMain.IdTCPServerConnect(AThread: TIdPeerThread);
begin
LbLog.Text:=('來自主機 '+ AThread.Connection.Socket.Binding.PeerIP+ ' 的連接請求已被接納!');
AThread.Connection.WriteLn('歡迎連接到簡單TCP服務器');
end;
procedure TTFormMain.IdTCPServerExecute(AThread: TIdPeerThread);
var
sCommand: string;
begin
begin
with AThread.Connection do
begin
// sCommand:='';
sCommand := ReadLn();
if AnsiStartsText('DATA ', sCommand) then
begin
LbLog.Text:=sCommand + ' 來自于主機 '+ AThread.Connection.Socket.Binding.PeerIP;
EdtData.Text:= RightStr(sCommand, Length(sCommand)-5);
end
else if SameText(sCommand, 'QUIT') then //
begin
LbLog.Text:= '斷開同主機 '+ AThread.Connection.Socket.Binding.PeerIP+ ' 的連接!';
Disconnect;
end
else
begin
WriteLn('無法識別的命令!');
LbLog.Text:= '無法識別命令:' + sCommand;
end;//endif
end;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -