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

📄 unit1.~pas

📁 delphi7下的完成端口应用
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IOCPBST;

type
  TForm1 = class(TForm)
    IOCPBST1: TIOCPBST;
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure IOCPBST1Event(Sender: TObject; Level: Integer;
      const Status: String);
    procedure IOCPBST1Connect(Sender: TObject; Socket: Integer);
    procedure IOCPBST1Disconnect(Sender: TObject; Socket: Integer);
    procedure IOCPBST1Receive(Sender: TObject; Data: Pointer;
      var SendData: Pointer; var Size: Cardinal);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    procedure Printf(str: string; const fmt: array of const);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  IOCPBST1.Open();
end;

procedure TForm1.IOCPBST1Event(Sender: TObject; Level: Integer;
  const Status: String);
begin
  (* 
    Level = M_SYSTEM  -- System Message
    Level = M_ERROR   -- Error Message
    Level = M_NORMAL  -- Normal Message
  *)
  Memo1.Lines.Add(Status);
end;

procedure TForm1.Printf(str: string; const fmt: array of const);
begin
  Memo1.Lines.Add(Format(str, fmt))
end;

procedure TForm1.IOCPBST1Connect(Sender: TObject; Socket: Integer);
begin
  Printf('new socket %d', [Socket]);
end;

procedure TForm1.IOCPBST1Disconnect(Sender: TObject; Socket: Integer);
begin
  Printf('Disconnect socket %d', [Socket]);
end;

procedure TForm1.IOCPBST1Receive(Sender: TObject; Data: Pointer;
  var SendData: Pointer; var Size: Cardinal);
type
  PPacket = ^TPacket;
  TPacket = packed record
    a: integer;
    b: array[0..99] of char;
  end;
var
  sendPack: PPacket; 
begin
  Memo1.Lines.Add('Receive: '+PPacket(Data)^.b);
  new(sendPack);
  sendPack^.a := 0;
  StrPCopy(sendPack^.b, 'Server result ' + IntToStr(Random(1000)));
  SendData := sendPack;
  Size := sizeof(sendPack);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  IOCPBST1.Team;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  IOCPBST1.Close();
end;

end.

⌨️ 快捷键说明

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