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

📄 rdservermain.pas

📁 Indy9,客户端
💻 PAS
字号:
unit rdServerMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, ToolWin, IdBaseComponent, IdComponent,
  IdTCPServer, StdCtrls,jpeg;

type
  TForm1 = class(TForm)
    ToolBar1: TToolBar;
    ScrollBox1: TScrollBox;
    Image1: TImage;
    ToolButton1: TToolButton;
    IdTCPServer1: TIdTCPServer;
    Memo1: TMemo;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    procedure ToolButton3Click(Sender: TObject);
    procedure Memo1DblClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure IdTCPServer1Disconnect(AThread: TIdPeerThread);
    procedure IdTCPServer1Connect(AThread: TIdPeerThread);
    procedure ToolButton1Click(Sender: TObject);
  private
    { Private declarations }
    bmpScreen: TBitmap;
    iPort: Integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  if ParamCount>0 then
  IdTCPServer1.DefaultPort := StrToInt(paramstr(1));
  try
    if not IdTCPServer1.Active then
    begin
      IdTCPServer1.Active := True;
      ToolButton1.Caption := '停止服务'
    end else begin
      IdTCPServer1.Active := False;
      ToolButton1.Caption := '打开服务';
    end;
  except
    on e: Exception do
      ShowMessage(e.Message);
  end;

end;

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
//  with AThread.Connection.Socket.Binding do
//  begin
//    Memo1.Lines.Add(Format('%s: %d 已经登陆!',[PeerIP,PeerPort]))
//  end;
end;

procedure TForm1.IdTCPServer1Disconnect(AThread: TIdPeerThread);
begin
//  with AThread.Connection.Socket.Binding do
//  begin
//    Memo1.Lines.Add(Format('%s: %d 退出!',[PeerIP,PeerPort]))
//  end;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  ms: TMemoryStream;
  buf: array[0..1023] of Char;
  jpgFile: TJPEGImage;
begin
  ms := TMemoryStream.Create;
  (*AThread.Connection.ReadStream(ms,-1,true);
  ms.Position := 0;
  ms.ReadBuffer(buf,ms.Size);
  Memo1.Lines.Add(buf);
  ms.Free; *)
//  if  AThread.Connection.ReadLn()= 'Request_Send' then
//  begin
//    Memo1.Lines.Add('接收请求命令: Request_Send');
//    AThread.Connection.WriteLn('Response_Send');
//    AThread.Connection.SendCmd('Response_Send');
//    if AThread.Connection.ReadLn()='Rcv'then
    begin
      jpgFile := TJPEGImage.Create;
      AThread.Connection.ReadStream(ms,-1,True);
//      ms.SaveToFile('D:\Project\DTmp\Socket\RemoteDesktop\aRcv.jpg');
      ms.Position := 0;
      jpgFile.LoadFromStream(ms);
      Image1.Picture.Assign(jpgFile);
      jpgFile.Free;
    end;
//    Memo1.Lines.Add('发送关闭命令');
//    AThread.Connection.Disconnect;
//  end else
//  begin
//    Memo1.Lines.Add('接收Err')
//  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bmpScreen := TBitmap.Create;
  bmpScreen.Width := Screen.Width;
  bmpScreen.Height:= Screen.Height;
  Image1.Width := Screen.Width;
  Image1.Height := Screen.Height;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  bmpScreen.Free;
end;

procedure TForm1.Memo1DblClick(Sender: TObject);
begin
  Memo1.Clear;
end;

procedure TForm1.ToolButton3Click(Sender: TObject);
begin
//  IdTCPServer1
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -