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

📄 server.pas

📁 冰河反弹版之独孤夕客专版 今天我决定把这个版本的冰河反弹版程序源码公布
💻 PAS
字号:
unit Server;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, ExtCtrls, jpeg,
  Menus, StdCtrls, IdStack, IdSocketHandle, Buttons;

type
  TServerForm = class(TForm)
    TCPServer: TIdTCPServer;
    Image: TImage;
    Panel: TPanel;
    MainMenu: TMainMenu;
    FileMenu: TMenuItem;
    FileExit: TMenuItem;
    lblIP: TLabel;
    HelpMenu: TMenuItem;
    FileAbout: TMenuItem;
    spbActiveServer: TSpeedButton;
    lblPort: TLabel;
    lblShowIP: TLabel;
    lblShowPort: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure TCPServerExecute(AThread: TIdPeerThread);
    procedure FileExitClick(Sender: TObject);
    procedure FileAboutClick(Sender: TObject);
    procedure spbActiveServerClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ServerForm: TServerForm;

implementation

uses
  About;

{$R *.dfm}

procedure TServerForm.FormCreate(Sender: TObject);
var
  Binding: TIdSocketHandle;
  IPList: TStrings;
begin
  IPList := GStack.LocalAddresses.Create;
  TCPServer.Bindings.Clear;
  if IPList.Count > 0 then
  begin
    Binding := TCPServer.Bindings.Add;
    Binding.IP := IPList.Strings[IPList.Count - 1];
    Binding.Port := 8085;
    lblShowIP.Caption := Binding.IP;
    lblShowPort.Caption := IntToStr(Binding.Port);
  end;
  //IPList := nil;
end;

procedure TServerForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if TCPServer.Active then
    TCPServer.Active := False;
end;

procedure TServerForm.TCPServerExecute(AThread: TIdPeerThread);
var
  memStream: TMemoryStream;
  jpg: TJpegImage;
  BufferLen: Integer;
begin
  if AThread.Connection.Connected and not AThread.Terminated then
  begin
    memStream := TMemoryStream.Create;
    BufferLen := AThread.Connection.ReadInteger;
    memStream.Size := BufferLen;
    AThread.Connection.ReadBuffer(memStream.Memory^, BufferLen);
    jpg := TJpegImage.Create;
    jpg.LoadFromStream(memStream);
    Image.Picture.Bitmap.Assign(jpg);
    jpg.Free;
    memStream.Free;
  end;
end;

procedure TServerForm.FileExitClick(Sender: TObject);
begin
  Close;
end;

procedure TServerForm.FileAboutClick(Sender: TObject);
begin
  AboutForm.Show;
end;

procedure TServerForm.spbActiveServerClick(Sender: TObject);
begin
  if TCPServer.Active then
  begin
    spbActiveServer.Caption := '启动';
    TCPServer.Active := False;
  end else
  begin
    spbActiveServer.Caption := '停止';
    TCPServer.Active := True;
  end;
end;

end.

⌨️ 快捷键说明

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