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

📄 idinterceptthrottler.pas

📁 网络控件适用于Delphi6
💻 PAS
字号:
{ $HDR$}
{**********************************************************************}
{ Unit archived using Team Coherence                                   }
{ Team Coherence is Copyright 2002 by Quality Software Components      }
{                                                                      }
{ For further information / comments, visit our WEB site at            }
{ http://www.TeamCoherence.com                                         }
{**********************************************************************}
{}
{ $Log:  28299: IdInterceptThrottler.pas 
{
{   Rev 1.2    2004.02.03 4:17:18 PM  czhower
{ For unit name changes.
}
{
{   Rev 1.1    2003.10.19 12:10:00 AM  czhower
{ Changed formula to be accurate with smaller numbers.
}
{
{   Rev 1.0    2003.10.18 11:32:00 PM  czhower
{ Initial checkin
}
{
{   Rev 1.1    2003.10.14 1:27:16 PM  czhower
{ Uupdates + Intercept support
}
{
{   Rev 1.0    2003.10.13 6:40:40 PM  czhower
{ Moved from root
}
{
{   Rev 1.0    11/13/2002 07:55:12 AM  JPMugaas
}
unit IdInterceptThrottler;

interface

uses
  Classes,
  IdComponent, IdIntercept, IdGlobal;

type
  TIdInterceptThrottler = class(TIdConnectionIntercept)
  protected
    FBitsPerSec: Integer;
  public
    procedure Receive(var ABuffer: TIdBytes); override;
    procedure Send(var ABuffer: TIdBytes); override;
  published
    property BitsPerSec: Integer read FBitsPerSec write FBitsPerSec;
  end;

implementation

uses
  IdAntiFreezeBase, IdException,
  SysUtils;

{ TIdInterceptThrottler }

procedure TIdInterceptThrottler.Receive(var ABuffer: TIdBytes);
begin
  inherited;
  if BitsPerSec > 0 then begin
    TIdAntiFreezeBase.Sleep((Length(ABuffer) * 8 * 1000) div BitsPerSec);
  end;
end;

procedure TIdInterceptThrottler.Send(var ABuffer: TIdBytes);
begin
  inherited;
  if BitsPerSec > 0 then begin
    TIdAntiFreezeBase.Sleep((Length(ABuffer) * 8 * 1000) div BitsPerSec);
  end;
end;

end.

⌨️ 快捷键说明

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