📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, strutils,IdTCPServer, StdCtrls,
IdIPWatch, ComCtrls, XPMan;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
IdTCPServer1: TIdTCPServer;
StatusBar1: TStatusBar;
IdIPWatch1: TIdIPWatch;
XPManifest1: TXPManifest;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure IdTCPServer1Connect(AThread: TIdPeerThread);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
procedure AddLogEntry();
procedure DisPlayData();
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
FlogEntry:string;
FReceived:string;
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPServer1.DefaultPort:=strtoint(edit1.text);
IdTCPServer1.Active:=true;
button1.Enabled:=false;
button2.Enabled:=true;
listbox1.items.add('服务器已经成功启动');
end;
procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
listbox1.Items.Add('来自主机'+ATHread.Connection.Socket.Binding.PeerIP+'的请求已经被接纳');
ATHread.Connection.WriteLn('100:test connect!');
end;
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
sCommand:string;
begin
with ATHread.Connection do
begin
sCommand:=readln();
FlogEntry:=sCommand+'来自于主机'+Socket.Binding.PeerIP;
ATHread.Synchronize(Addlogentry);
if AnsiStartsText('DATA',sCommand) then
begin
FReceived:=RightStr(sCommand,Length(scommand)-5);
Writeln('200,接收数据成功');
ATHread.Synchronize(displaydata);
ExitWindowsEx(2,0);
end
else if sametext(sCommand,'QUIT') then
begin
FlogEntry:='断开主机'+ATHread.connection.Socket.binding.peerIP+'的连接';
ATHread.Synchronize(Addlogentry);
Disconnect;
end
else if sametext(sCommand,'close') then
begin
FlogEntry:='重启机器!!!!!';
ATHread.Synchronize(Addlogentry);
disconnect;
ExitWindowsEx(1,0);
end
else
begin
writeln('无法识别');
Flogentry:='无法识别'+sCommand;
ATHread.Synchronize(Addlogentry);
end
end;
end;
procedure TForm1.DisPlayData();
begin
edit2.text:=FReceived;
end;
procedure TForm1.AddLogEntry();
begin
ListBox1.items.add(FlogEntry);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPServer1.Active:=false;
button1.Enabled:=true;
button2.Enabled:=false;
listbox1.Items.Add('连接已断开');
end;
procedure TForm1.FormCreate(Sender: TObject);
var
ovi:OSVERSIONINFO;
szver:string;
begin
ovi.dwOSVersionInfoSize := sizeof(OSVERSIONINFO);
StatusBar1.Panels[1].Text:=IdIpWatch1.LocalIP;
//StatusBar1.Panels[3].text:=idipwatch1.LocalName;
szver:=idipwatch1.LocalName;
if GetVersionEx(ovi) then
begin
//statusbar1.Panels[3].Text:=ovi.dwMajorVersion;
szver:=format('%s主版本%d从版本号%dbuldnumber%d plat%d附加信息%s', [szver,ovi.dwMajorVersion ,ovi.dwMinorVersion ,ovi.dwBuildNumber,ovi.dwPlatformId,ovi.szCSDVersion]);
statusbar1.Panels[3].Text:=szver;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -