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

📄 utcpip.pas

📁 < Delphi网络通信协议分析与应用实现>>一书的源代码。
💻 PAS
字号:
unit uTCPIP;
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, IPHelper, StdCtrls, ComCtrls, Buttons, jpeg;

const
   version = '1.0';  
type
  TIPForm = class( TForm )
    Timer1: TTimer;
    PageControl1: TPageControl;
    ARPSheet: TTabSheet;
    ConnSheet: TTabSheet;
    IP1Sheet: TTabSheet;
    IPAddrMemo: TMemo;
    StaticText6: TStaticText;
    IP2Sheet: TTabSheet;
    IPForwMemo: TMemo;
    StaticText8: TStaticText;
    AdaptSheet: TTabSheet;
    AdaptMemo: TMemo;
    StaticText9: TStaticText;
    TabSheet1: TTabSheet;
    IfMemo: TMemo;
    StaticText15: TStaticText;
    GroupBox1: TGroupBox;
    cbTimer: TCheckBox;
    SpeedButton1: TSpeedButton;
    btRTTI: TSpeedButton;
    edtRTTI: TEdit;
    StaticText14: TStaticText;
    cbRecentIPs: TComboBox;
    GroupBox2: TGroupBox;
    StaticText2: TStaticText;
    TCPMemo: TMemo;
    GroupBox3: TGroupBox;
    StaticText3: TStaticText;
    UDPMemo: TMemo;
    GroupBox4: TGroupBox;
    StaticText1: TStaticText;
    ARPMemo: TMemo;
    GroupBox5: TGroupBox;
    StaticText10: TStaticText;
    NwMemo: TMemo;
    GroupBox6: TGroupBox;
    StaticText7: TStaticText;
    TCPStatMemo: TMemo;
    StaticText5: TStaticText;
    IPStatsMemo: TMemo;
    GroupBox7: TGroupBox;
    StaticText4: TStaticText;
    UDPStatsMemo: TMemo;
    Panel1: TPanel;
    ICMPOutMemo: TMemo;
    ICMPInMemo: TMemo;
    StaticText12: TStaticText;
    procedure Timer1Timer( Sender: TObject );
    procedure FormCreate( Sender: TObject );
    procedure SpeedButton1Click( Sender: TObject );
    procedure cbTimerClick( Sender: TObject );
    procedure btRTTIClick( Sender: TObject );
    procedure cbRecentIPsClick( Sender: TObject );
  private
    { Private declarations }
    procedure DOIpStuff;
  public
    { Public declarations }
  end;

var
  IPForm        : TIPForm;

implementation

{$R *.DFM}

//创建窗体事件
procedure TIPForm.FormCreate( Sender: TObject );
begin
    PageControl1.ActivePage := ConnSheet;
    Caption := Caption + ' ' + Version;
    DOIpStuff;
    Timer1.Enabled := true;
end;

//更新网络连接信息
procedure TIPForm.DOIpStuff;
begin
    Get_NetworkParams( NwMemo.Lines );
    Get_ARPTable( ARPMemo.Lines );
    Get_TCPTable( TCPMemo.Lines );
    Get_TCPStatistics( TCPStatMemo.Lines );
    Get_UDPTable( UDPMemo.Lines );
    Get_IPStatistics( IPStatsMemo.Lines );
    Get_IPAddrTable( IPAddrMemo.Lines );
    Get_IPForwardTable( IPForwMemo.Lines );
    Get_UDPStatistics( UDPStatsMemo.Lines );
    Get_AdaptersInfo( AdaptMemo.Lines );
    Get_ICMPStats( ICMPInMemo.Lines, ICMPOutMemo.Lines );
    Get_IfTable( IfMemo.Lines );
    Get_RecentDestIPs( cbRecentIPs.Items );
end;

//设置定时更新
procedure TIPForm.cbTimerClick( Sender: TObject );
begin
    Timer1.Enabled := cbTimer.State = cbCHECKED;
end;

//定时更新
procedure TIPForm.Timer1Timer( Sender: TObject );
begin
    if cbTimer.State = cbCHECKED then
    begin
        Timer1.Enabled := false;
        DoIPStuff;
        Timer1.Enabled := true;
    end;
end;

//更新
procedure TIPForm.SpeedButton1Click( Sender: TObject );
begin
    Speedbutton1.Enabled := false;
    DoIPStuff;
    Speedbutton1.Enabled := true;
end;

//RTTI时间计算
procedure TIPForm.btRTTIClick( Sender: TObject );
var
    IPadr         : dword;
    Rtt, HopCount : longint;
    Res           : integer;
begin
    btRTTI.Enabled := false;
    Screen.Cursor := crHOURGLASS;
    IPadr := Str2IPAddr( edtRTTI.Text );
    Res := Get_RTTAndHopCount( IPadr, 128, RTT, HopCount );
    if Res = NO_ERROR then
        ShowMessage( ' Round Trip Time '
        + inttostr( rtt ) + ' ms, '
        + inttostr( HopCount )
        + ' hops to : ' + edtRTTI.Text
        )
    else
        ShowMessage( 'Error occurred:' + #13
                    + ICMPErr2Str( Res ) ) ;
    btRTTI.Enabled := true;
    Screen.Cursor := crDEFAULT;
end;

//最近连接的远程IP列表
procedure TIPForm.cbRecentIPsClick( Sender: TObject );
begin
    edtRTTI.Text := cbRecentIPs.Items[cbRecentIPs.ItemIndex];
end;





end.

⌨️ 快捷键说明

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