亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tncnx.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 2 頁
字號(hào):
{*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Program:      TNCNX.PAS
Object:       Delphi component which implement the TCP/IP telnet protocol
              including some options negociations.
              RFC854, RFC885, RFC779, RFC1091
Author:       Fran鏾is PIETTE
EMail:        http://users.swing.be/francois.piette  francois.piette@swing.be
              http://www.rtfm.be/fpiette             francois.piette@rtfm.be
              francois.piette@pophost.eunet.be
Creation:     April, 1996
Version:      2.07
Support:      Use the mailing list twsocket@rtfm.be See website for details.
Legal issues: Copyright (C) 1996-2000 by Fran鏾is PIETTE
              Rue de Grady 24, 4053 Embourg, Belgium. Fax: +32-4-365.74.56
              <francois.piette@pophost.eunet.be>

              This software is provided 'as-is', without any express or
  	      implied warranty.  In no event will the author be held liable
              for any  damages arising from the use of this software.

              Permission is granted to anyone to use this software for any
              purpose, including commercial applications, and to alter it
              and redistribute it freely, subject to the following
              restrictions:

              1. The origin of this software must not be misrepresented,
                 you must not claim that you wrote the original software.
                 If you use this software in a product, an acknowledgment
                 in the product documentation would be appreciated but is
                 not required.

              2. Altered source versions must be plainly marked as such, and
                 must not be misrepresented as being the original software.

              3. This notice may not be removed or altered from any source
                 distribution.

              4. You must register this software by sending a picture postcard
                 to the author. Use a nice stamp and mention your name, street
                 address, EMail address and any comment you like to say.

Updates:
Jul 22, 1997 Adapted to Delphi 3
Sep 5, 1997  Added version information, removed old code, added OnTermType
             Renamed some indentifier to be more standard.
Sep 24, 1997 V2.03 Added procedures to negociate options
May 12, 1998 V2.04 Changed NegociateOption to properly handle unwanted
             option as Jan Tomasek <xtomasej@feld.cvut.cz> suggested.
Aug 10, 1998 V2.05 Cleared strSubOption after NegociateSubOption as Jan
             Tomasek <xtomasej@feld.cvut.cz> suggested.
Aug 15, 1999 V2.06 Moved Notification procedure to public section for
             BCB4 compatibility
Aug 20, 1999 V2.07 Added compile time options. Revised for BCB4.


 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit TnCnx;

{$B-}           { Enable partial boolean evaluation   }
{$T-}           { Untyped pointers                    }
{$X+}           { Enable extended syntax              }
{$IFNDEF VER80} { Not for Delphi 1                    }
    {$H+}       { Use long strings                    }
    {$J+}       { Allow typed constant to be modified }
{$ENDIF}
{$IFDEF VER110} { C++ Builder V3.0                    }
    {$ObjExportAll On}
{$ENDIF}
{$IFDEF VER125} { C++ Builder V4.0                    }
    {$ObjExportAll On}
{$ENDIF}

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Controls, Forms,
  WSocket, Winsock;

const
  TnCnxVersion       = 207;
  CopyRight : String = ' TTnCnx (c) 1996-2000 F. Piette V2.07 ';

  { Telnet command characters                                             }
  TNCH_EOR        = #239;     { $EF End Of Record (preceded by IAC)       }
  TNCH_SE         = #240;     { $F0 End of subnegociation parameters      }
  TNCH_NOP        = #241;     { $F1 No operation                          }
  TNCH_DATA_MARK  = #242;     { $F2 Data stream portion of a Synch        }
  TNCH_BREAK      = #243;     { $F3 NVT charcater break                   }
  TNCH_IP         = #244;     { $F4 Interrupt process                     }
  TNCH_AO         = #245;     { $F5 Abort output                          }
  TNCH_AYT        = #246;     { $F6 Are you there                         }
  TNCH_EC         = #247;     { $F7 Erase character                       }
  TNCH_EL         = #248;     { $F8 Erase line                            }
  TNCH_GA         = #249;     { $F9 Go ahead                              }
  TNCH_SB         = #250;     { $FA Subnegociation                        }
  TNCH_WILL       = #251;     { $FB Will                                  }
  TNCH_WONT       = #252;     { $FC Wont                                  }
  TNCH_DO         = #253;     { $FD Do                                    }
  TNCH_DONT       = #254;     { $FE Dont                                  }
  TNCH_IAC        = #255;     { $FF IAC                                   }

  { Telnet options                                                        }
  TN_TRANSMIT_BINARY      = #0;   { $00 }
  TN_ECHO                 = #1;   { $01 }
  TN_RECONNECTION         = #2;   { $02 }
  TN_SUPPRESS_GA          = #3;   { $03 }
  TN_MSG_SZ_NEGOC         = #4;   { $04 }
  TN_STATUS               = #5;   { $05 }
  TN_TIMING_MARK          = #6;   { $06 }
  TN_NOPTIONS             = #6;   { $06 }
  TN_DET                  = #20;  { $14 }
  TN_SEND_LOC             = #23;  { $17 }
  TN_TERMTYPE             = #24;  { $18 }
  TN_EOR                  = #25;  { $19 }
  TN_NAWS                 = #31;  { $1F }
  TN_TERMSPEED            = #32;  { $20 }
  TN_TFC                  = #33;  { $21 }
  TN_XDISPLOC             = #35;  { $23 }
  TN_EXOPL                = #255; { $FF }

  TN_TTYPE_SEND		  = #1;
  TN_TTYPE_IS		  = #0;

type
  TTnCnx = class;

  TTnSessionConnected = procedure (Sender: TTnCnx; Error : word) of object;
  TTnSessionClosed    = procedure (Sender: TTnCnx; Error : word) of object;
  TTnDataAvailable    = procedure (Sender: TTnCnx; Buffer : PChar; Len : Integer) of object;
  TTnDisplay          = procedure (Sender: TTnCnx; Str : String) of object;

  TTnCnx= class(TComponent)
  public
    Socket              : TWSocket;
  private
    FPort               : String;
    FHost               : String;
    FLocation           : String;
    FTermType           : String;
    RemoteBinMode       : Boolean;
    LocalBinMode        : Boolean;
    FLocalEcho          : Boolean;
    Spga                : Boolean;
    FTType              : Boolean;
    FBuffer             : array [0..2048] of char;
    FBufferCnt          : Integer;
    FWindowHandle       : HWND;
    FOnSessionConnected : TTnSessionConnected;
    FOnSessionClosed    : TTnSessionClosed;
    FOnDataAvailable    : TTnDataAvailable;
    FOnDisplay          : TTnDisplay;
    FOnEOR              : TNotifyEvent;
    FOnSendLoc          : TNotifyEvent;
    FOnTermType         : TNotifyEvent;
    FOnLocalEcho        : TNotifyEvent;
    procedure WndProc(var MsgRec: TMessage);
    procedure SocketSessionConnected(Sender: TObject; Error : word);
    procedure SocketSessionClosed(Sender: TObject; Error : word);
    procedure SocketDataAvailable(Sender: TObject; Error : word);
    procedure Display(Str : String);
    procedure AddChar(Ch : Char);
    procedure ReceiveChar(Ch : Char);
    procedure Answer(chAns : Char; chOption : Char);
    procedure NegociateSubOption(strSubOption : String);
    procedure NegociateOption(chAction : Char; chOption : Char);
    procedure FlushBuffer;
    function  GetState : TSocketState;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    function    Send(Data : Pointer; Len : Integer) : integer;
    function    SendStr(Data : String) : integer;
    procedure   Connect;
    function    IsConnected : Boolean;
    procedure   WillOption(chOption : Char);
    procedure   WontOption(chOption : Char);
    procedure   DontOption(chOption : Char);
    procedure   DoOption(chOption : Char);
    procedure   Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure   Close;
    procedure   Pause;
    procedure   Resume;
    property    State : TSocketState                  read  GetState;
    property    Handle : HWND                         read  FWindowHandle;
  published
    property Port : String                            read  FPort
                                                      write FPort;
    property Host : String                            read  FHost
                                                      write FHost;
    property Location : String                        read  FLocation
                                                      write FLocation;
    property TermType : String                        read  FTermType
                                                      write FTermType;
    property LocalEcho : Boolean                      read  FLocalEcho
                                                      write FLocalEcho;
    property OnSessionConnected : TTnSessionConnected read  FOnSessionConnected
                                                      write FOnSessionConnected;
    property OnSessionClosed :    TTnSessionClosed    read  FOnSessionClosed
                                                      write FOnSessionClosed;
    property OnDataAvailable :    TTnDataAvailable    read  FOnDataAvailable
                                                      write FOnDataAvailable;
    property OnDisplay :          TTnDisplay          read  FOnDisplay
                                                      write FOnDisplay;
    property OnEndOfRecord :      TNotifyEvent        read  FOnEOR
                                                      write FOnEOR;
    property OnSendLoc :          TNotifyEvent        read  FOnSendLoc
                                                      write FOnSendLoc;
    property OnTermType :         TNotifyEvent        read  FOnTermType
                                                      write FOnTermType;
    property OnLocalEcho :        TNotifyEvent        read  FOnLocalEcho
                                                      write FOnLocalEcho;
  end;

procedure Register;

implementation

{$DEFINE Debug}      { Add or remove minus sign before dollar sign to }
                     { generate code for debug message output         }

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure Register;
begin
  RegisterComponents('FPiette', [TTnCnx]);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure DebugString(Msg : String);
const
    Cnt : Integer = 0;
var
    Buf : String[20];
begin
{$IFDEF Debug}
    Cnt := Cnt + 1;
    Buf := IntToHex(Cnt, 4) + ' ' + #0;
    OutputDebugString(@Buf[1]);

{$IFNDEF WIN32}
    if Length(Msg) < High(Msg) then
        Msg[Length(Msg) + 1] := #0;
{$ENDIF}

    OutputDebugString(@Msg[1]);
{$ENDIF}
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.WndProc(var MsgRec: TMessage);
begin
     with MsgRec do
         Result := DefWindowProc(Handle, Msg, wParam, lParam);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TTnCnx.Create(AOwner: TComponent);
begin
    inherited Create(AOwner);
    FWindowHandle             := AllocateHWnd(WndProc);
    FLocation                 := 'TNCNX';
    FTermType                 := 'VT100';
    FPort                     := '23';
    Socket                    := TWSocket.Create(Self);
    Socket.OnSessionConnected := SocketSessionConnected;
    Socket.OnDataAvailable    := SocketDataAvailable;
    Socket.OnSessionClosed    := SocketSessionClosed;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor TTnCnx.Destroy;
begin
    if Assigned(Socket) then begin
        Socket.Free;
        Socket := nil;
    end;
    DeallocateHWnd(FWindowHandle);
    inherited Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.Notification(AComponent: TComponent; Operation: TOperation);
begin
    inherited Notification(AComponent, Operation);
    if (AComponent = Socket) and (Operation = opRemove) then
        Socket := nil;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.Pause;
begin
    if not Assigned(Socket) then
        Exit;
    Socket.Pause;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.Resume;
begin
    if not Assigned(Socket) then
        Exit;
    Socket.Resume;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.Connect;
begin
    if not Assigned(Socket) then
        Exit;

    if Socket.State <> wsClosed then
        Socket.Close;

    Socket.Proto := 'tcp';
    Socket.Port  := FPort;
    Socket.Addr  := FHost;
    Socket.Connect;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TTnCnx.IsConnected : Boolean;
begin
    Result := Socket.State = wsConnected;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.Close;
begin
    if Assigned(Socket) then
        Socket.Close;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnCnx.Display(Str : String);
begin
    if Assigned(FOnDisplay) then
        FOnDisplay(Self, Str);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TTnCnx.GetState : TSocketState;
begin
    if Assigned(Socket) then
        Result := Socket.State

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品视频自拍| 成人精品免费看| 欧美日韩国产综合一区二区| 一区二区成人在线| 欧美日韩在线播放三区四区| 亚洲狠狠爱一区二区三区| 欧美色手机在线观看| 午夜精品久久久久| 日韩三级电影网址| 国产成人aaa| 亚洲精品乱码久久久久久黑人| 99精品视频一区二区| 石原莉奈在线亚洲三区| 91久久奴性调教| 精品国产乱码久久久久久闺蜜| 免费高清成人在线| 国产无遮挡一区二区三区毛片日本| 国产99久久久久| 亚洲午夜电影在线观看| 精品少妇一区二区三区在线视频| 国产一区二区三区电影在线观看| 综合激情成人伊人| 5858s免费视频成人| 国产精品一级片| 亚洲综合区在线| 欧美r级在线观看| 色诱亚洲精品久久久久久| 三级在线观看一区二区| 国产欧美一区二区精品久导航 | 成人免费毛片片v| 欧美精品一区在线观看| 欧美剧情电影在线观看完整版免费励志电影| 一本到一区二区三区| 午夜av一区二区三区| 精品国产一二三区| 一本色道a无线码一区v| 久久精品国产免费| 91蝌蚪国产九色| 三级在线观看一区二区| 亚洲女女做受ⅹxx高潮| 久久久一区二区三区捆绑**| av毛片久久久久**hd| 久久久噜噜噜久噜久久综合| 国产一区二区三区av电影 | 久久综合九色综合97_久久久| 精久久久久久久久久久| 久久99久久久久久久久久久| 日韩和欧美一区二区| 免费观看在线色综合| 毛片不卡一区二区| 精品亚洲成av人在线观看| 狠狠色丁香九九婷婷综合五月| 国产一区二区伦理片| 国产成都精品91一区二区三| 成人国产精品免费观看| 91免费版pro下载短视频| 色婷婷精品久久二区二区蜜臀av| 色呦呦国产精品| 欧美高清激情brazzers| 欧美电影免费提供在线观看| 2022国产精品视频| 国产精品久久久久永久免费观看| 亚洲欧美视频一区| 五月天中文字幕一区二区| 日本亚洲免费观看| 国产精品亚洲第一| 在线这里只有精品| 欧美一区二区三区小说| 日本一区二区视频在线观看| 亚洲三级理论片| 日日夜夜免费精品视频| 国产毛片一区二区| 色综合av在线| 日韩精品中文字幕一区| 国产精品午夜春色av| 亚洲成人三级小说| 国产精品99久久不卡二区| 91一区一区三区| 欧美一区二区三区视频在线观看| 欧美经典一区二区| 午夜激情综合网| 国产不卡视频在线播放| 欧美日韩成人综合在线一区二区 | 综合自拍亚洲综合图不卡区| 亚洲国产精品久久艾草纯爱| 狠狠久久亚洲欧美| 日本久久精品电影| 久久影院午夜片一区| 一区二区三区中文在线观看| 经典三级一区二区| 欧美日韩一区二区三区高清| 国产欧美精品一区二区色综合| 欧美视频一区二区| 国产精品一区二区在线观看不卡 | 亚洲欧洲成人精品av97| 五月天激情小说综合| 国产精品一区专区| 欧美午夜片在线看| 国产精品久久久99| 久久99蜜桃精品| 欧美日韩夫妻久久| 亚洲精选在线视频| 国产成人午夜精品影院观看视频| 欧美日韩午夜在线| 1024亚洲合集| 国产伦精品一区二区三区视频青涩 | 亚洲国产精品成人综合 | 亚洲三级理论片| 国产精品一区二区不卡| 在线播放国产精品二区一二区四区| 欧美激情中文不卡| 国产一区二区0| 日韩精品中文字幕在线不卡尤物| 亚洲最大色网站| 99热99精品| 亚洲国产精品成人久久综合一区| 久久99久久久欧美国产| 欧美一级生活片| 亚洲 欧美综合在线网络| 91麻豆swag| 中文字幕亚洲在| 成人激情动漫在线观看| 久久精品这里都是精品| 国产自产高清不卡| 精品国免费一区二区三区| 人人爽香蕉精品| 日韩西西人体444www| 日韩精品一卡二卡三卡四卡无卡| 欧洲激情一区二区| 亚洲第一激情av| 精品污污网站免费看| 亚洲综合成人在线视频| 欧美羞羞免费网站| 亚洲一二三四在线观看| 在线观看视频一区| 亚洲国产日产av| 欧美性猛片aaaaaaa做受| 亚洲欧美一区二区三区极速播放 | 国产精品一区二区在线观看网站| 日韩精品一区在线观看| 精品制服美女丁香| 久久久亚洲午夜电影| 国产在线精品视频| 2020国产成人综合网| 国产一区二区精品在线观看| 久久久不卡网国产精品一区| 国产精品亚洲视频| ...xxx性欧美| 欧洲视频一区二区| 日本最新不卡在线| 26uuu欧美日本| 丁香激情综合国产| 亚洲欧美成人一区二区三区| 欧美午夜寂寞影院| 日韩1区2区3区| 久久精品一区蜜桃臀影院| 91在线视频免费91| 亚洲一区影音先锋| 日韩欧美www| 国产91丝袜在线播放九色| 成人欧美一区二区三区黑人麻豆| 一本大道久久a久久精二百| 日韩精品亚洲一区| 久久久久久久精| 91色在线porny| 首页国产丝袜综合| 欧美激情自拍偷拍| 91久久一区二区| 久久成人羞羞网站| 亚洲欧洲日韩在线| 欧美美女黄视频| 国产福利一区二区三区视频在线| 亚洲美女视频在线| 日韩欧美一二三区| 91网站在线播放| 青娱乐精品视频在线| 国产精品丝袜黑色高跟| 欧美做爰猛烈大尺度电影无法无天| 欧美a一区二区| 中文字幕中文乱码欧美一区二区| 欧美亚洲高清一区二区三区不卡| 伦理电影国产精品| 亚洲精品视频在线看| 久久综合色8888| 在线观看av一区| 国产成人aaa| 日韩av一区二区三区| 国产精品久久久久久久久免费丝袜| 欧美日韩国产精选| 不卡欧美aaaaa| 久久不见久久见中文字幕免费| 亚洲免费三区一区二区| 精品久久久久香蕉网| 在线观看视频91| 成人在线视频一区二区| 日本中文字幕一区| 亚洲一区视频在线| 亚洲国产精华液网站w| 91麻豆精品国产自产在线| 91丝袜美女网|