⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 delphi 实现SCOKET通信的源代码已经测试无误可以使用
💻 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 + -