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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? socks1.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
字號:
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Author:       Fran鏾is PIETTE
Description:  Show how to use TWSocket with SOCKS protocol to traverse
              a firewall.
EMail:        francois.piette@pophost.eunet.be    francois.piette@rtfm.be
              http://www.rtfm.be/fpiette
Creation:     November 21, 1998
Version:      1.00
Support:      Use the mailing list twsocket@rtfm.be See website for details.
Legal issues: Copyright (C) 1998 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.

History:


 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit Socks1;

interface

uses
  WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, IniFiles, WinSock, WSocket, StdCtrls, ExtCtrls;

type
  TSocksTestForm = class(TForm)
    DisplayMemo: TMemo;
    Panel1: TPanel;
    ConnectButton: TButton;
    DisconnectButton: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    TargetHostEdit: TEdit;
    TargetPortEdit: TEdit;
    SocksServerEdit: TEdit;
    SocksPortEdit: TEdit;
    WSocket1: TWSocket;
    Label5: TLabel;
    SocksUsercodeEdit: TEdit;
    SocksPasswordEdit: TEdit;
    Label6: TLabel;
    SocksAuthCheckBox: TCheckBox;
    ClearButton: TButton;
    Socks4RadioButton: TRadioButton;
    Socks5RadioButton: TRadioButton;
    procedure ConnectButtonClick(Sender: TObject);
    procedure WSocket1SessionConnected(Sender: TObject; Error: Word);
    procedure WSocket1DataAvailable(Sender: TObject; Error: Word);
    procedure WSocket1SocksError(Sender: TObject; Error: Integer;
      Msg: String);
    procedure DisconnectButtonClick(Sender: TObject);
    procedure WSocket1SessionClosed(Sender: TObject; Error: Word);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure WSocket1SocksAuthState(Sender: TObject;
      AuthState: TSocksAuthState);
    procedure WSocket1SocksConnected(Sender: TObject; Error: Word);
    procedure DisplayMsg(Sender : TObject; var Msg : String);
    procedure ClearButtonClick(Sender: TObject);
  private
    FIniFileName : String;
    FInitialized : Boolean;
    FRcvBuf      : array [0..2047] of char;
    FRcvCnt      : Integer;
  public
    { D閏larations publiques }
  end;

var
  SocksTestForm: TSocksTestForm;

implementation

{$R *.DFM}

const
    SectionWindow      = 'Windows';
    KeyTop             = 'Top';
    KeyLeft            = 'Left';
    KeyWidth           = 'Width';
    KeyHeight          = 'Height';
    SectionData        = 'Data';
    KeyTargetHost      = 'TargetHost';
    KeyTargetPort      = 'TargetPort';
    KeySocksServer     = 'SocksServer';
    KeySocksPort       = 'SocksPort';
    KeySocksUsercode   = 'SocksUsercode';
    KeySocksPassword   = 'SocksPassword';
    KeySocksAuth       = 'SocksAuthentification';
    KeySocks4          = 'Socks4';
    KeySocks5          = 'Socks5';

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{$IFDEF VER80}
function TrimRight(Str : String) : String;
var
    i : Integer;
begin
    i := Length(Str);
    while (i > 0) and (Str[i] = ' ') do
        i := i - 1;
    Result := Copy(Str, 1, i);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TrimLeft(Str : String) : String;
var
    i : Integer;
begin
    if Str[1] <> ' ' then
        Result := Str
    else begin
        i := 1;
        while (i <= Length(Str)) and (Str[i] = ' ') do
            i := i + 1;
        Result := Copy(Str, i, Length(Str) - i + 1);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function Trim(Str : String) : String;
begin
    Result := TrimLeft(TrimRight(Str));
end;
{$ENDIF}


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.FormCreate(Sender: TObject);
begin
    FIniFileName := LowerCase(ExtractFileName(Application.ExeName));
    FIniFileName := Copy(FIniFileName, 1, Length(FIniFileName) - 3) + 'ini';
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.FormShow(Sender: TObject);
var
    IniFile : TIniFile;
begin
    if not FInitialized then begin
        FInitialized := TRUE;
        DisplayMemo.Clear;
        IniFile      := TIniFile.Create(FIniFileName);
        Width        := IniFile.ReadInteger(SectionWindow, KeyWidth,  Width);
        Height       := IniFile.ReadInteger(SectionWindow, KeyHeight, Height);
        Top          := IniFile.ReadInteger(SectionWindow, KeyTop,
                                            (Screen.Height - Height) div 2);
        Left         := IniFile.ReadInteger(SectionWindow, KeyLeft,
                                            (Screen.Width  - Width)  div 2);
        TargetHostEdit.Text    := IniFile.ReadString(SectionData, KeyTargetHost,    '');
        TargetPortEdit.Text    := IniFile.ReadString(SectionData, KeyTargetPort,    '');
        SocksServerEdit.Text   := IniFile.ReadString(SectionData, KeySocksServer,   '');
        SocksPortEdit.Text     := IniFile.ReadString(SectionData, KeySocksPort,     '1080');
        SocksUsercodeEdit.Text := IniFile.ReadString(SectionData, KeySocksUsercode, '');
        SocksPasswordEdit.Text := IniFile.ReadString(SectionData, KeySocksPassword, '');
        SocksAuthCheckBox.Checked := Boolean(IniFile.ReadInteger(SectionData, KeySocksAuth, 0));
        Socks4RadioButton.Checked := Boolean(IniFile.ReadInteger(SectionData, KeySocks4,    0));
        Socks5RadioButton.Checked := Boolean(IniFile.ReadInteger(SectionData, KeySocks5,    1));
        IniFile.Destroy;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
    IniFile : TIniFile;
begin
    IniFile := TIniFile.Create(FIniFileName);
    IniFile.WriteInteger(SectionWindow, KeyTop,         Top);
    IniFile.WriteInteger(SectionWindow, KeyLeft,        Left);
    IniFile.WriteInteger(SectionWindow, KeyWidth,       Width);
    IniFile.WriteInteger(SectionWindow, KeyHeight,      Height);
    IniFile.WriteString(SectionData, KeyTargetHost,    Trim(TargetHostEdit.Text));
    IniFile.WriteString(SectionData, KeyTargetPort,    Trim(TargetPortEdit.Text));
    IniFile.WriteString(SectionData, KeySocksServer,   Trim(SocksServerEdit.Text));
    IniFile.WriteString(SectionData, KeySocksPort,     Trim(SocksPortEdit.Text));
    IniFile.WriteString(SectionData, KeySocksUsercode, Trim(SocksUsercodeEdit.Text));
    IniFile.WriteString(SectionData, KeySocksPassword, Trim(SocksPasswordEdit.Text));
    IniFile.WriteInteger(SectionData, KeySocksAuth, Ord(SocksAuthCheckBox.Checked));
    IniFile.WriteInteger(SectionData, KeySocks5,    Ord(Socks5RadioButton.Checked));
    IniFile.WriteInteger(SectionData, KeySocks4,    Ord(Socks4RadioButton.Checked));
    IniFile.Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.DisplayMsg(Sender : TObject; var Msg : String);
begin
    DisplayMemo.lines.Add(Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.ConnectButtonClick(Sender: TObject);
const
    AuthMethod : array [Boolean] of TSocksAuthentication =
        (socksNoAuthentication, socksAuthenticateUsercode);
begin
    if Socks5RadioButton.Checked then
        WSocket1.SocksLevel := '5'
    else if Socks4RadioButton.Checked and SocksAuthCheckBox.Checked then
        WSocket1.SocksLevel := '4A'
    else
        WSocket1.SocksLevel := '4';
    DisplayMemo.Lines.Add('Connecting using Socks' + WSocket1.SocksLevel);

    WSocket1.SocksServer         := Trim(SocksServerEdit.Text);
    WSocket1.SocksPort           := Trim(SocksPortEdit.Text);
    WSocket1.SocksUsercode       := Trim(SocksUsercodeEdit.Text);
    WSocket1.SocksPassword       := Trim(SocksPasswordEdit.Text);
    WSocket1.SocksAuthentication := AuthMethod[SocksAuthCheckBox.Checked];
    WSocket1.Proto               := 'tcp';
    WSocket1.Addr                := Trim(TargetHostEdit.Text);
    WSocket1.Port                := Trim(TargetPortEdit.Text);
    WSocket1.OnDisplay           := DisplayMsg;
    WSocket1.Connect;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.DisconnectButtonClick(Sender: TObject);
begin
    WSocket1.Close;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.WSocket1SessionConnected(Sender: TObject; Error: Word);
begin
    DisplayMemo.Lines.Add('Session connected to remote host.');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.WSocket1SocksConnected(Sender: TObject; Error: Word);
begin
    DisplayMemo.Lines.Add('Session connected to socks server.');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.WSocket1SocksAuthState(Sender: TObject;
  AuthState: TSocksAuthState);
begin
    case AuthState of
    socksAuthStart:
        DisplayMemo.Lines.Add('Socks authentification start.');
    socksAuthSuccess:
        DisplayMemo.Lines.Add('Socks authentification success.');
    socksAuthFailure:
        DisplayMemo.Lines.Add('Socks authentification failure.');
    socksAuthNotRequired:
        DisplayMemo.Lines.Add('Socks authentification not required.');
    else
        DisplayMemo.Lines.Add('Unknown socks authentification state.')
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.WSocket1SessionClosed(Sender: TObject; Error: Word);
begin
    DisplayMemo.Lines.Add('Session Closed');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.WSocket1DataAvailable(Sender: TObject; Error: Word);
var
    Len : Integer;
    I   : Integer;
    p   : PChar;
begin
    Len := TWSocket(Sender).Receive(@FRcvBuf[FRcvCnt], Sizeof(FRcvBuf) - FRcvCnt - 1);
    if Len < 0 then
        Exit;
    FRcvCnt := FRcvCnt + Len;
    FRcvBuf[FRcvCnt] := #0;

    while FRcvCnt > 0 do begin
        p := StrScan(FRcvBuf, #10);
        if p = nil then
            Exit;
        I := p - FRcvBuf;

        FRcvBuf[I] := #0;
        if (I > 0) and (FRcvBuf[I - 1] = #13) then
            FRcvBuf[I - 1] := #0;

        DisplayMemo.Lines.Add('Received: ''' + StrPas(FRcvBuf) + '''');
        Move(FRcvBuf[I + 1], FRcvBuf[0], FRcvCnt - I);
        FRcvCnt := FRcvCnt - I - 1;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.WSocket1SocksError(Sender : TObject; Error : Integer; Msg : String);
begin
    DisplayMemo.Lines.Add('Socks error #' + IntToStr(Error) + ' ' + Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TSocksTestForm.ClearButtonClick(Sender: TObject);
begin
    DisplayMemo.Clear;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲三级电影| 国产精品嫩草99a| 色悠久久久久综合欧美99| 久久99精品国产91久久来源| 丝瓜av网站精品一区二区| 樱桃国产成人精品视频| 亚洲精品视频免费观看| 亚洲另类色综合网站| 亚洲夂夂婷婷色拍ww47| 亚洲国产综合在线| 亚洲3atv精品一区二区三区| 日日夜夜精品视频免费| 全国精品久久少妇| 久久av资源网| 成人高清视频免费观看| 色噜噜狠狠色综合欧洲selulu| 在线精品视频免费观看| 91麻豆精品久久久久蜜臀 | 国产精品久久久久桃色tv| 欧美国产禁国产网站cc| 亚洲国产精品精华液2区45| 亚洲免费观看视频| 五月激情综合网| 国产精品资源站在线| 成人av集中营| 在线成人av影院| 国产三级精品三级在线专区| 亚洲精品中文在线影院| 五月天视频一区| 懂色av中文字幕一区二区三区 | 久久9热精品视频| 国产成人精品亚洲777人妖| 91色乱码一区二区三区| 欧美一区二区三区日韩视频| 日本不卡不码高清免费观看| 中文成人综合网| 亚洲欧美日韩在线| 久久精品国产一区二区| 91免费国产在线观看| 欧美成人aa大片| 亚洲精品写真福利| 日韩主播视频在线| 国产91富婆露脸刺激对白| 欧美老肥妇做.爰bbww| 国产欧美日韩在线| 三级欧美在线一区| 99视频国产精品| 精品国产一区二区亚洲人成毛片| 亚洲三级在线观看| 国产精品一二三区在线| 欧美日本国产一区| **网站欧美大片在线观看| 精品中文字幕一区二区| 不卡的av中国片| 精品一区免费av| 国产精品女上位| 久久精品噜噜噜成人av农村| 91精品办公室少妇高潮对白| 久久久亚洲午夜电影| 日本强好片久久久久久aaa| 色呦呦国产精品| 国产精品欧美久久久久无广告| 欧美96一区二区免费视频| 欧洲av在线精品| 亚洲欧美色综合| 97国产一区二区| 欧美国产一区二区| 粉嫩av一区二区三区在线播放| 91精品国产91综合久久蜜臀| 亚洲高清视频在线| 欧美日韩在线综合| 一区二区高清视频在线观看| 91美女视频网站| 亚洲欧洲另类国产综合| 91在线国内视频| 欧美xingq一区二区| 久久精品国产精品亚洲综合| 欧美日韩的一区二区| 天天av天天翘天天综合网色鬼国产 | 欧美一区二区成人6969| 视频精品一区二区| 日韩欧美一区在线| 九一久久久久久| 久久久噜噜噜久久人人看| 韩国女主播成人在线| 精品国产制服丝袜高跟| 国产经典欧美精品| 久久久久久久久久看片| 成人一区二区视频| 中文字幕在线观看一区| 成人黄色国产精品网站大全在线免费观看 | 国产成人亚洲综合a∨婷婷图片| 日韩欧美一区二区免费| 激情五月婷婷综合网| 日韩欧美成人一区| 久久国内精品自在自线400部| 精品免费国产二区三区| 国产999精品久久久久久绿帽| 国产精品天干天干在观线| 色综合欧美在线视频区| 欧美国产日韩亚洲一区| 99国产欧美久久久精品| 一区二区三区在线观看视频| 欧美精品一卡二卡| 九九久久精品视频| 久久久久国产免费免费| 色综合久久久久网| 美女尤物国产一区| 久久精品视频网| 91香蕉视频在线| 日韩福利电影在线| 久久精品视频在线免费观看| 91麻豆免费视频| 日本在线不卡视频一二三区| 精品对白一区国产伦| 国产精品一区二区在线观看不卡| 中文字幕二三区不卡| 91精品国产综合久久精品app| 国产a视频精品免费观看| 亚洲一区二区av在线| 久久综合久久综合久久| 91国产免费看| 国产69精品久久777的优势| 亚洲图片一区二区| 久久久久国产精品人| 在线不卡的av| 一本色道久久综合亚洲91| 国产一区欧美日韩| 婷婷中文字幕综合| 亚洲综合无码一区二区| 中文字幕欧美三区| 久久影院午夜片一区| 欧美丰满美乳xxx高潮www| 色综合婷婷久久| 成人中文字幕在线| 国产大陆精品国产| 韩日精品视频一区| 久久精品72免费观看| 午夜精品福利一区二区三区av| 国产精品女上位| 国产精品网友自拍| 日韩午夜激情视频| 欧美日韩mp4| 欧洲av一区二区嗯嗯嗯啊| 国内精品不卡在线| 香蕉av福利精品导航| 亚洲一区二区av电影| 亚洲视频免费看| 欧美高清在线一区二区| 欧美老女人第四色| 在线看国产日韩| 欧美亚洲动漫精品| 欧美日韩三级视频| 欧美日韩日日夜夜| 欧美一区二区久久| 日韩精品一区二区在线| 欧美一二区视频| 精品久久久久99| www国产精品av| 国产日产欧美一区| 国产精品美女久久久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91蜜桃免费观看视频| 在线看日韩精品电影| 欧美日韩亚洲综合| 日韩一二三区不卡| 久久久久88色偷偷免费| 欧美国产精品一区二区三区| 亚洲日穴在线视频| 午夜视频一区二区| 亚洲综合丝袜美腿| 国产成人99久久亚洲综合精品| 精品一区二区精品| 亚洲一级二级在线| 免费观看日韩av| 国产做a爰片久久毛片| 国产成人丝袜美腿| 亚洲不卡在线观看| 五月天婷婷综合| 麻豆freexxxx性91精品| 国产成人精品午夜视频免费| 韩国女主播成人在线| 成人午夜在线播放| 色哟哟一区二区三区| 欧美日韩dvd在线观看| 欧美日本韩国一区二区三区视频| 欧美一区二区三区在线观看视频| 久久久影视传媒| 亚洲三级免费电影| 亚洲18色成人| 国产成人免费视| 精品1区2区3区| 精品国产制服丝袜高跟| 亚洲欧洲另类国产综合| 久久精品国产亚洲高清剧情介绍| 国产成人av资源| 亚洲嫩草精品久久| 中文字幕av免费专区久久| 亚洲成人av在线电影| 成人午夜视频福利|