Delphi开发简单端口扫描器

    技术2026-09-21  8

    //挺简单,主要是对控件的属性,事件的学习 。。。

     

    unit Unit1;

    interface

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

    type  TForm1 = class(TForm)    ClientSocket: TClientSocket;    Button: TButton;    Button1: TButton;    procedure ButtonClick(Sender: TObject);    procedure ClientSocketConnect(Sender: TObject;      Socket: TCustomWinSocket);    procedure ClientSocketDisconnect(Sender: TObject;      Socket: TCustomWinSocket);    procedure Button1Click(Sender: TObject);    procedure ClientSocketConnecting(Sender: TObject;      Socket: TCustomWinSocket);    procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;      ErrorEvent: TErrorEvent; var ErrorCode: Integer);    procedure FormClose(Sender: TObject; var Action: TCloseAction);  private    { Private declarations }  public    { Public declarations }  end;

    var  Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.ButtonClick(Sender: TObject);begin  ClientSocket.Active:=False;  ClientSocket.Address:='127.0.0.1';  ClientSocket.Port:=137;  ClientSocket.Open;end;

    procedure TForm1.ClientSocketConnect(Sender: TObject;  Socket: TCustomWinSocket);begin    ShowMessage('连接成功,端口存在');end;

    procedure TForm1.ClientSocketDisconnect(Sender: TObject;  Socket: TCustomWinSocket);begin  ShowMessage('断开连接');end;

    procedure TForm1.Button1Click(Sender: TObject);begin  ClientSocket.Active := False;  //关闭连接;end;

    procedure TForm1.ClientSocketConnecting(Sender: TObject;  Socket: TCustomWinSocket);begin  ShowMessage('正在连接...');end;

    procedure TForm1.ClientSocketError(Sender: TObject;  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;  var ErrorCode: Integer);begin  ShowMessage('端口不存在,连接失败');  ErrorCode:=0; //注解这句代码,程序运行错误;添加这句代码,就不弹出错误提示框,我真的不知道,还要学习中。。。。

    {在ClientSocket中,可以在OnError事件中捕捉错误,错误的类型定义在ErrorEvent里面。如果不想错误显示出来,直接在该事件中写ErrorCode:=0,那么错误将不被显示出来。在ServerSocket中,可以在OnClientError中捕捉,方法跟客户端一样}end;

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin  ClientSocket.Close;end;

    end.

    最新回复(0)