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

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

?? recv1.pas

?? 文件名稱:新曦 我的資源 搜索軟件 源程序(Borland Delphi 7)說明
?? PAS
字號:
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Author:       Fran鏾is PIETTE
Description:  Simple server program which just listen for clients and display
              all incomming data.
EMail:        francois.piette@pophost.eunet.be    francois.piette@rtfm.be
              http://www.rtfm.be/fpiette
Creation:     Sep 29, 1998
Version:      1.03
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:
Oct 28, 1998  V1.01 Added Linger and Banner checkboxes.
Dec 30, 1998  V1.02 Remove trailing CR/LF on data receive.
Mar 07, 1999  V1.03 Adapted for Delphi 1

 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit Recv1;

interface

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

const
  WM_DESTROY_SOCKET = WM_USER + 1;

type
  TRecvForm = class(TForm)
    Panel1: TPanel;
    DisplayMemo: TMemo;
    Label1: TLabel;
    PortEdit: TEdit;
    ActionButton: TButton;
    WSocket1: TWSocket;
    CloseAllButton: TButton;
    Label2: TLabel;
    LingerCheckBox: TCheckBox;
    BannerCheckBox: TCheckBox;
    LineModeOnButton: TButton;
    LineOffButton: TButton;
    procedure ActionButtonClick(Sender: TObject);
    procedure PortEditChange(Sender: TObject);
    procedure WSocket1SessionAvailable(Sender: TObject; Error: Word);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure CloseAllButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure LineModeOnButtonClick(Sender: TObject);
    procedure LineOffButtonClick(Sender: TObject);
  private
    FIniFileName : String;
    FInitialized : Boolean;
    FClients     : TList;
    procedure ClientDataAvailable(Sender : TObject; Error : Word);
    procedure ClientSessionClosed(Sender: TObject; Error: Word);
    procedure Display(Msg : String);
    procedure WMDestroySocket(var msg: TMessage); message WM_DESTROY_SOCKET;
  end;

var
  RecvForm: TRecvForm;

implementation

{$R *.DFM}

const
    SectionWindow   = 'RecvForm';
    KeyTop          = 'Top';
    KeyLeft         = 'Left';
    KeyWidth        = 'Width';
    KeyHeight       = 'Height';
    SectionData     = 'Data';
    KeyPort         = 'Port';
    KeyLinger       = 'Linger';
    KeyBanner       = 'SendBanner';


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


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.FormDestroy(Sender: TObject);
begin
    if Assigned(FClients) then begin
        FClients.Destroy;
        FClients := nil;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.FormShow(Sender: TObject);
var
    IniFile : TIniFile;
begin
    if not FInitialized then begin
        FInitialized := TRUE;
        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);
        PortEdit.Text := IniFile.ReadString(SectionData, KeyPort, 'telnet');
        LingerCheckBox.Checked := Boolean(IniFile.ReadInteger(SectionData, KeyLinger, 0));
        BannerCheckBox.Checked := Boolean(IniFile.ReadInteger(SectionData, KeyBanner, 1));
        Label2.Caption := '';
        IniFile.Destroy;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.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,    KeyPort,   PortEdit.text);
    IniFile.WriteInteger(SectionData,   KeyLinger, Ord(LingerCheckBox.Checked));
    IniFile.WriteInteger(SectionData,   KeyBanner, Ord(BannerCheckBox.Checked));
    IniFile.Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.Display(Msg : String);
begin
    if DisplayMemo.Lines.Count > 200 then   { Prevent TMemo overflow }
        DisplayMemo.Clear;
    DisplayMemo.Lines.Add(Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.ActionButtonClick(Sender: TObject);
begin
    if ActionButton.Caption = '&Start' then begin
        WSocket1.Addr     := '0.0.0.0';
        WSocket1.Port     := PortEdit.Text;
        WSocket1.Proto    := 'tcp';
        WSocket1.Listen;
        ActionButton.Caption := '&Stop';
        Display('Listening for clients');
    end
    else begin
        WSocket1.Close;
        ActionButton.Caption := '&Start';
        Display('Not listening for clients');
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.PortEditChange(Sender: TObject);
begin
    WSocket1.Close;
    ActionButton.Caption := '&Start';
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.WSocket1SessionAvailable(Sender: TObject; Error: Word);
var
    NewClient : TWSocket;
begin
    Display('Client connected');
    Label2.Caption := '';
    NewClient := TWSocket.Create(nil);
    FClients.Add(NewClient);
    NewClient.LineMode            := TRUE;
    NewClient.OnDataAvailable     := ClientDataAvailable;
    NewClient.OnSessionClosed     := ClientSessionClosed;
    NewClient.HSocket             := WSocket1.Accept;
    if LingerCheckBox.Checked then
        NewClient.LingerOnOff     := wsLingerOn
    else
        NewClient.LingerOnOff     := wsLingerOff;
    NewClient.LingerTimeout       := 300;
    NewClient.SetLingerOption;
    if BannerCheckBox.Checked then
        NewClient.SendStr('Hello !' + #13#10);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.ClientDataAvailable(Sender : TObject; Error : Word);
var
    Buf : array [0..127] of char;
    Len : Integer;
begin
    Len := TWSocket(Sender).Receive(@Buf, Sizeof(Buf) - 1);
    if Len <= 0 then
        Exit;
    { Remove any trailing CR/LF}
    while (Len > 0) and (Buf[Len - 1] in [#13, #10]) do
        Dec(Len);
    { Nul terminate the data }
    Buf[Len] := #0;
    Display('DataAvailable: ''' + StrPas(@Buf) + '''');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.ClientSessionClosed(Sender: TObject; Error: Word);
var
    Cli : TWSocket;
    Itm : Integer;
begin
    Cli := Sender as TWSocket;
    Display('Client diconnected');

    Itm := FClients.IndexOf(Cli);
    if Itm >= 0 then
        FClients.Delete(Itm);
    { We can't destroy a TWSocket from a SessionClosed event handler.   }
    { So we post a message to delay destruction until we are out of the }
    { message handler.                                                  }
    PostMessage(Handle, WM_DESTROY_SOCKET, 0, LongInt(Cli));
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.WMDestroySocket(var msg: TMessage);
begin
    TWSocket(msg.LParam).Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.CloseAllButtonClick(Sender: TObject);
begin
    Display('Disconnecting clients');
    while FClients.Count > 0 do
        TWSocket(FClients.Items[0]).Close;
    Display('All clients disconnected');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.LineModeOnButtonClick(Sender: TObject);
var
    I : Integer;
begin
    for I := 0 to FClients.Count - 1 do
        TWSocket(FClients.Items[0]).LineMode := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TRecvForm.LineOffButtonClick(Sender: TObject);
var
    I : Integer;
begin
    for I := 0 to FClients.Count - 1 do
        TWSocket(FClients.Items[0]).LineMode := FALSE;
end;


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

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产麻豆精品| 日本亚洲一区二区| 成人av电影在线| 国产日韩精品视频一区| 韩国欧美一区二区| 日韩欧美高清一区| 国模一区二区三区白浆| 国产日韩亚洲欧美综合| av亚洲精华国产精华| 亚洲精品视频在线| 欧美日韩aaaaaa| 精品亚洲国产成人av制服丝袜 | 国产欧美综合在线| 成年人午夜久久久| 亚洲一级在线观看| 日韩三级视频中文字幕| 国产激情一区二区三区| 亚洲视频在线观看三级| 欧美另类一区二区三区| 韩国毛片一区二区三区| 日韩毛片精品高清免费| 欧美日韩亚洲综合在线| 狠狠色伊人亚洲综合成人| 欧美国产综合一区二区| 欧美综合一区二区三区| 麻豆精品久久精品色综合| 国产精品久久久久久久久免费桃花 | 精品系列免费在线观看| 中文字幕不卡一区| 欧美日韩你懂的| 国产经典欧美精品| 亚洲福中文字幕伊人影院| 日韩一区二区三区视频| 国产91丝袜在线播放0| 亚洲国产日韩综合久久精品| 久久精品人人做人人综合| 亚洲香肠在线观看| 国产精品123| 亚洲妇女屁股眼交7| 日本一区二区三区四区在线视频| 欧美天堂一区二区三区| 九九精品视频在线看| 亚洲色图视频网站| 精品免费99久久| 欧美性色综合网| 国产盗摄视频一区二区三区| 亚洲不卡一区二区三区| 国产欧美一区二区在线观看| 欧美一区二区三区不卡| 91在线观看一区二区| 久草这里只有精品视频| 亚洲一区二区精品视频| 国产精品少妇自拍| 精品久久久久一区| 欧美中文字幕不卡| 成人app软件下载大全免费| 久久99国产精品久久99果冻传媒| 亚洲综合免费观看高清完整版在线| 国产欧美日产一区| 欧美一区二区三区在线观看视频| 91久久久免费一区二区| 成人午夜免费av| 国产酒店精品激情| 久久99国产精品麻豆| 日本成人在线网站| 亚洲成av人影院在线观看网| 亚洲天堂免费看| 亚洲欧洲av在线| 国产精品欧美一级免费| 国产午夜精品久久| 国产亚洲一区二区三区| 久久久国产午夜精品| 精品成人佐山爱一区二区| 在线不卡a资源高清| 欧美日韩色一区| 欧美三级韩国三级日本一级| 欧美日韩亚洲丝袜制服| 欧美日韩不卡一区| 91精品国产麻豆| 日韩欧美国产一区二区在线播放 | 久久久久久久久99精品| 精品国产一区二区在线观看| 精品国产乱码久久久久久闺蜜| 91精品国产福利在线观看| 欧美一区二区免费视频| 日韩一区二区三区在线视频| 日韩女优电影在线观看| 精品国产欧美一区二区| 久久色中文字幕| 国产精品美女久久久久久| 亚洲色图欧美偷拍| 亚洲综合色视频| 人人爽香蕉精品| 国产在线精品免费av| 国产99久久久国产精品免费看 | 国产麻豆成人精品| 国产精品自产自拍| 成人一区二区三区在线观看| 波波电影院一区二区三区| 91美女在线观看| 精品视频在线免费看| 欧美一区日本一区韩国一区| 久久久夜色精品亚洲| 欧美国产一区在线| 国产**成人网毛片九色| 国产成人在线免费| 91视视频在线直接观看在线看网页在线看| 91久久免费观看| 精品久久久久久久久久久久包黑料| 欧美精品一区二| 国产精品每日更新| 亚洲成av人影院在线观看网| 国产一区二区三区四区在线观看 | 精品在线一区二区三区| 成人午夜电影网站| 欧美日韩激情一区| 26uuu久久天堂性欧美| 日韩一区在线免费观看| 日本在线不卡一区| 成人免费看片app下载| 欧美日韩在线直播| 国产午夜亚洲精品理论片色戒| 亚洲激情一二三区| 久久av老司机精品网站导航| 91色porny| 久久嫩草精品久久久精品| 一区二区三区在线看| 久久精品国产色蜜蜜麻豆| 99久久精品国产导航| 欧美一区二区三区四区高清| 日韩理论片中文av| 久久国产尿小便嘘嘘| 欧美在线观看一区二区| 久久精品欧美一区二区三区不卡 | 高清shemale亚洲人妖| 欧美日韩国产综合草草| 国产精品视频麻豆| 蜜桃视频在线观看一区二区| 91久久奴性调教| 国产精品欧美极品| 久久99精品久久久久久动态图 | 亚洲日本成人在线观看| 免费在线观看视频一区| 色欧美88888久久久久久影院| 国产日韩高清在线| 美女网站视频久久| 欧美视频精品在线观看| 国产精品初高中害羞小美女文| 国产一区二区三区精品视频| 欧美一区二区在线免费播放| 一区二区三区加勒比av| 成人av免费在线观看| 国产精品无人区| 国产精品一区2区| 精品成人a区在线观看| 日本不卡一区二区三区 | 免费成人美女在线观看.| 欧洲一区在线电影| 亚洲欧洲另类国产综合| 丰满亚洲少妇av| 国产亚洲女人久久久久毛片| 国产呦精品一区二区三区网站| 91精品国产综合久久国产大片| 亚洲国产视频一区| 在线欧美日韩国产| 一区二区三国产精华液| 91成人在线精品| 一色桃子久久精品亚洲| 日韩精品一区二区三区swag| 国产成人免费xxxxxxxx| 日韩精品中文字幕在线不卡尤物| 午夜一区二区三区在线观看| 欧美日韩日日夜夜| 一区二区三区四区中文字幕| 在线国产亚洲欧美| 一区二区三区四区蜜桃| 91久久精品一区二区三| 亚洲午夜久久久久久久久久久 | 日韩精品福利网| 在线播放中文一区| 日本成人中文字幕| 亚洲精品一线二线三线| 国产精品69毛片高清亚洲| 国产精品私人自拍| 在线视频国产一区| 日韩专区欧美专区| 日韩美一区二区三区| 国产经典欧美精品| 亚洲人亚洲人成电影网站色| 欧美日韩中文另类| 久久99国产精品免费| 中文字幕欧美日本乱码一线二线| 91免费视频观看| 视频一区二区三区在线| 精品少妇一区二区三区在线视频 | 色婷婷av一区二区三区大白胸| 亚洲国产日日夜夜| 欧美一级高清大全免费观看| 国产精品1区二区.| 日本一二三不卡|