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

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

?? overbyte.ics.wsocket.pas

?? BaiduMp3 search baidu mp3
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
             Thanks to Alex Kook <cookis@mail.ru> for finding this one.
Apr 27, 2002 V4.40 Added procedure WSocketUnregisterClass to be able to
             unregister hidden window. This is necessary when TWSocket is
             used within a DLL which is unloaded and reloaded by applications,
             specially when running with Windows-XP. Thanks to Jean-Michel Aliu
             <jmaliu@jmasoftware.com> who provided a test case.
Jun 02, 2002 V4.41 allow SOCK_RAW in Connect method for any protocol which is
             not TCP or UDP. Thanks to Holger Lembke <holger@hlembke.de>.
Jun 04, 2002 V4.42 Do not call Listen for SOCK_RAW.
             Thanks to Holger Lembke <holger@hlembke.de>.
Jun 08, 2002 V4.43 Add a dummy Register procedure for BCB1.
             Thanks to Marc-Alexander Prowe <listen@mohajer.de>.
Jul 07, 2002 V4.44 Added code in Connect method to check if socket still opened
             after OnChangeState event. If not, trigger an error WSAINVAL.
Sep 16, 2002 V4.45 Exposed RcvdPtr and RcvdCnt readonly properties.
Sep 17, 2002 V4.46 Used InterlockedIncrement/InterlockedDecrement to Inc/Dec
             socket count safely when TWSocket is used within a thread. This
             was proposed by Matthew Meadows <matthew.meadows@inquisite.com>
Sep 28, 2002 V4.47 Changed DnsLookup so that a hostname is checked for dotted
             IP addresse and resolve it numerically. Thanks to Bogdan Calin
             <soul4blade@yahoo.com> who found this bug. Alos loaded the result
             list with the address to be consistant with real lookup result.
Nov 17, 2002 V4.48 Roland Klabunde <roland.klabunde@gmx.net> found a bug in
             multicast code: listening on a specific interface was ignored.
             He fixed Listen and Connect.
Nov 27, 2002 V4.49 Added ListenBacklog property, default to 5.
Dec 17, 2002 V4.50 Moved code to virtual function to permit SSL implementation.
Jan 19, 2003 V5.00 First pre-release for ICS-SSL. New major version number
             V5.01 Gabi Slonto <buffne01@gmx.net> found a bug in DnsLookup
             when hostname was actulally a dotted IP address.
Mar 18, 2003 V5.02 Fixed WSocketIsDottedIP: reordering of boolean expressions
             involaving a string. Thanks to Ian Baker <ibaker@codecutters.org>
Apr 30, 2003 V5.03 Replaced all calls to setsockopt by calls to
             WSocket_setsockopt to avoid statically linked winsock DLL.
             Thanks to Piotr Dalek <enigmatical@interia.pl>.
             Also replaced inet_addr by WSocket_iniet_addr.
Aug 27, 2003 V5.04 Marco van de Voort <marcov@stack.nl> added FreePascal (FPC)
             conditional compilation. Please contact him for any FPC support
             question.
Aug 28, 2003 V5.05 Fixed a multithreading issue related to windows class
             registration. Now using a critical section around the code.
             Thanks to Bogdan Ureche <bureche@omnivex.com> for his precious help.
Aug 31, 2003 V5.06 Added warning about deprecated procedures Synchronize,
             WaitUntilReady and ReadLine. Do not use them in new applications.
Sep 03, 2003 V5.07 Bogdan Ureche <bureche@omnivex.com> added a critical section
             to avoid problem when winsock.dll is unloaded by a thread while
             another thread is still using some TWSocket.
Sep 15, 2003 V5.08 Fixed finalization section to no free critical section if
             a TWSocket is still existing. This happend for example when a
             TWSocket is on a form and Halt is called from FormCreate event.
             Changed SendStr argument to const.
Nov 09, 2003 V5.09 Added manifest constants for Shutdown
             Added TCustomLineWSocket.SendLine method.
Dec 07, 2003 V6.00 Pre-release for Delphi 8 for .NET framework


About multithreading and event-driven:
    TWSocket is a pure asynchronous component. It is non-blocking and
    event-driven. It means that when you request an operation such as connect,
    the component start the operation your requested and give control back
    immediately while performing the operation in the background automatically.
    When the operation is done, an event is triggered (such as
    OnSessionConnected if you called Connect).

    This asynchronous non-blocking behaviour is very high performance but a
    little bit difficult to start with. For example, you can't call Connect and
    immediately call SendStr the line below. If you try, you'll have an
    exception triggered saying you are not connected. Calling connect will start
    connection process but will return long before connection is established.
    Calling SendStr at the next line will not work because the socket is not
    connected yet. To make it works the right way, you have to put your SendStr
    in the OnSessionConnected event.

    The asynchronous operation allows you to do several TCP/IP I/O
    simultaneously. Just use as many component as you need. Each one will
    operate independently of the other without blocking each other ! So you
    basically don't need multi-threading with TWSocket, unless YOUR processing
    is lengthy and blocking.

    If you have to use multithreading, you have two possibilities:
    1) Create your TWSocket from your thread's Execute method
    2) Attach a TWSocket to a given thread using ThreadAttach.
    In both cases, you must set MultiThreaded property to TRUE.
    If you don't use one of those methods, you'll end up with a false
    multithreaded program: all events will be processed by the main tread !
    For both methods to work, you MUST have a message loop withing your thread.
    Delphi create a message loop automatically for the main thread (it's in
    the Forms unit), but does NOT create one in a thread ! For your convenience,
    TWSocket has his own MessageLoop procedure. You can use it from your thread.

    Sample program MtSrv uses first method while ThrdSrv uses second method.
    Sample program TcpSrv is much the same as ThrdSrv but doesn't use any
    thread. You'll see that it is able to server a lot of simultaneous clients
    as well and it is much simpler.


 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit OverByte.Ics.WSocket platform;

{$ALIGN 1}

interface

{$DEFINE NOFORMS}

uses
    System.Runtime.InteropServices,
    System.Threading,
    System.Text,
    Borland.Vcl.Windows,
    Borland.Vcl.Messages,
    Borland.Vcl.Classes,
    Borland.Vcl.WinUtils,
    Borland.Vcl.SysUtils,
    Overbyte.Ics.Component,
    OverByte.Ics.WSockBuf,
    OverByte.Ics.WinSock;

const
    WSocketVersion            = 600;
    CopyRight    : String     = ' TWSocket (c)1996-2005 Francois Piette V6.00 ';
    WM_ASYNCSELECT            = WM_USER + 1;
    WM_ASYNCGETHOSTBYNAME     = WM_USER + 2;
    WM_ASYNCGETHOSTBYADDR     = WM_USER + 3;
    WM_CLOSE_DELAYED          = WM_USER + 4;
    WM_WSOCKET_RELEASE        = WM_USER + 5;
    WM_TRIGGER_EXCEPTION      = WM_USER + 6;
    WM_TRIGGER_DATA_AVAILABLE = WM_USER + 20;
    WSA_WSOCKET_TIMEOUT       = 12001;

type
    TWndMethod           = procedure(var Message: TMessage) of object;
    ESocketException     = class(Exception);
    TSocketState         = (wsInvalidState,
                            wsOpened,     wsBound,
                            wsConnecting, wsSocksConnected, wsConnected,
                            wsAccepting,  wsListening,
                            wsClosed);
    TSocketSendFlags     = (wsSendNormal, wsSendUrgent);
    TSocketLingerOnOff   = (wsLingerOff, wsLingerOn, wsLingerNoSet);
    TWSocketSyncNextProc = procedure of object;
    TWSocketOption       = (wsoNoReceiveLoop, wsoTcpNoDelay);
    TWSocketOptions      = set of TWSocketOption;
    TDataAvailable       = procedure (Sender: TObject; ErrCode: Word) of object;
    TDataSent            = procedure (Sender: TObject; ErrCode: Word) of object;
    TSendData            = procedure (Sender: TObject; BytesSent: Integer) of object;
    TSessionClosed       = procedure (Sender: TObject; ErrCode: Word) of object;
    TSessionAvailable    = procedure (Sender: TObject; ErrCode: Word) of object;
    TSessionConnected    = procedure (Sender: TObject; ErrCode: Word) of object;
    TDnsLookupDone       = procedure (Sender: TObject; ErrCode: Word) of object;
    TChangeState         = procedure (Sender: TObject;
                                      OldState : TSocketState;
                                      NewState : TSocketState) of object;
    TDebugDisplay        = procedure (Sender: TObject;
                                      var Msg : String) of object;

    TCustomWSocket = class(TIcsComponent)
    private
        FDnsResult          : String;
        FDnsResultList      : TStrings;
        FSendFlags          : Integer;
        FLastError          : Integer;
        FDnsLookupBuffer    : TBytes;
        FDnsLookupHandle    : THandle;
        FDnsLookupCheckMsg  : Boolean;
        FDnsLookupTempMsg   : TMessage;
        FDnsLookupGCH       : GCHandle;
        FDnsLookupIntPtr    : IntPtr;
    protected
        FHSocket            : TSocket;
        FASocket            : TSocket;               { Accepted socket }
        FAddrStr            : String;
        FAddrResolved       : Boolean;
        FAddrFormat         : Integer;
        FAddrAssigned       : Boolean;
        FProto              : Integer;
        FProtoAssigned      : Boolean;
        FProtoResolved      : Boolean;
        FLocalPortResolved  : Boolean;
        FProtoStr           : String;
        FPortStr            : String;
        FPortAssigned       : Boolean;
        FPortResolved       : Boolean;
        FPortNum            : Integer;
        FLocalPortStr       : String;
        FLocalPortNum       : Integer;
        FLocalAddr          : String;     { IP address for local interface to use }
        FType               : Integer;
        FBufList            : TList;
        FBufSize            : Integer;
        FLingerOnOff        : TSocketLingerOnOff;
        FLingerTimeout      : Integer;              // In seconds, 0 = disabled
        FListenBacklog      : Integer;
        bAllSent            : Boolean;
        FReadCount          : LongInt;
        FPaused             : Boolean;
        FCloseInvoked       : Boolean;
        FFlushTimeout       : Integer;
        // More info about multicast can be found at:
        //   http://ntrg.cs.tcd.ie/undergrad/4ba2/multicast/antony/
        //    http://www.tldp.org/HOWTO/Multicast-HOWTO-6.html
        FMultiCast          : Boolean;
        // Multicast addresses consists of a range of addresses from 224.0.0.0
        // to 239.255.255.255. However, the multicast addresses from 224.0.0.0
        // to 224.0.0.255 are reserved for multicast routing information;
        // Application programs should use multicast addresses outside this
        // range.
        FMultiCastAddrStr   : String;
        FMultiCastIpTTL     : Integer;
        FReuseAddr          : Boolean;
        FComponentOptions   : TWSocketOptions;
        FState              : TSocketState;
        FRcvdFlag           : Boolean;
        FSelectEvent        : LongInt;
        FSelectMessage      : WORD;
        FRecvStrBuf         : TBytes;
        FOnSessionAvailable : TSessionAvailable;
        FOnSessionConnected : TSessionConnected;
        FOnSessionClosed    : TSessionClosed;
        FOnChangeState      : TChangeState;
        FOnDataAvailable    : TDataAvailable;
        FOnDataSent         : TDataSent;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线综合网| 亚洲欧美另类小说视频| 中文字幕在线一区免费| 石原莉奈在线亚洲三区| 国产成人丝袜美腿| 欧美精品v国产精品v日韩精品 | 激情文学综合插| 国产精品久久久久久久久久免费看| 亚洲精品午夜久久久| 精品一区二区三区视频| 欧美日韩国产在线观看| 专区另类欧美日韩| 国产酒店精品激情| 欧美videos大乳护士334| 亚洲第一久久影院| 色天使色偷偷av一区二区| 欧美国产亚洲另类动漫| 精品一区二区三区免费| 欧美一区二区在线播放| 亚洲国产精品视频| 一本久久精品一区二区| 国产精品久久毛片a| 国产福利一区二区三区| 久久久综合网站| 另类专区欧美蜜桃臀第一页| 91精品麻豆日日躁夜夜躁| 亚洲激情校园春色| 99re这里只有精品6| 国产欧美日韩视频在线观看| 国产一区二区h| 久久精品视频一区二区| 国产揄拍国内精品对白| 中文字幕乱码亚洲精品一区| 国产成人精品免费网站| 国产精品久久久久一区| 成人黄色免费短视频| 国产精品蜜臀av| 丁香六月综合激情| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品一区免费视频| 久久免费偷拍视频| 风间由美一区二区三区在线观看 | 国产精品久久综合| 91在线视频18| 亚洲综合激情网| 欧美一区二区三区视频在线观看| 免费视频一区二区| 国产日韩欧美综合一区| 成人黄色在线网站| 亚洲三级免费电影| 欧洲精品中文字幕| 视频一区二区国产| 精品乱码亚洲一区二区不卡| 国产一区二区在线观看视频| 国产亚洲福利社区一区| 99精品视频在线播放观看| 一区二区三区四区不卡在线| 欧美日韩一区不卡| 经典一区二区三区| 国产精品久久久久久久午夜片| 色哟哟在线观看一区二区三区| 午夜久久电影网| 欧美精品一区男女天堂| 91色|porny| 精品在线观看视频| 亚洲欧美偷拍另类a∨色屁股| 日韩三级av在线播放| 成人激情黄色小说| 免费在线观看日韩欧美| 国产精品久久久久三级| 7777精品伊人久久久大香线蕉的| 激情文学综合网| 亚洲成人自拍一区| 久久久久久麻豆| 欧美日韩在线播放三区| 不卡的av在线播放| 麻豆精品视频在线| 亚洲色欲色欲www| 欧美大片拔萝卜| 色婷婷av一区二区三区gif| 蜜桃视频第一区免费观看| 1000精品久久久久久久久| 制服丝袜亚洲播放| 99久久精品免费| 国产91富婆露脸刺激对白| 欧亚一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 国产jizzjizz一区二区| 欧美一区二区在线免费观看| 一区二区三区在线视频免费观看 | 美女视频黄a大片欧美| 国产91精品免费| 久久成人久久鬼色| 中文字幕亚洲成人| 91丨porny丨国产入口| 亚洲成人一区二区在线观看| 亚洲精品一二三四区| 亚洲欧洲国产日韩| 精品国产网站在线观看| 国产高清精品在线| 欧美xxxx老人做受| 五月激情综合色| 高清国产午夜精品久久久久久| 欧美精品第1页| 久久se精品一区二区| 欧美成人aa大片| 波多野结衣中文字幕一区二区三区| 欧美一区二区三区精品| 国产盗摄一区二区| 国产成人午夜精品5599| 久久国产精品色婷婷| www.av亚洲| 国产美女一区二区三区| 日日夜夜免费精品视频| www激情久久| 欧亚洲嫩模精品一区三区| 成人av综合一区| 国产一区二区三区日韩| 国产亚洲综合在线| 欧美日韩在线三区| 高清国产一区二区三区| 青青草国产精品亚洲专区无| 亚洲精品第一国产综合野| 精品少妇一区二区三区日产乱码 | 天堂午夜影视日韩欧美一区二区| 久久精品综合网| 99这里只有精品| 国产乱码精品一区二区三区忘忧草| 日韩激情在线观看| 亚洲国产精品久久不卡毛片 | 亚洲一二三级电影| 久久综合成人精品亚洲另类欧美| 国产福利一区二区三区视频| 国产自产高清不卡| 99精品视频在线观看免费| 国产精品一区在线观看你懂的| 久久久国产一区二区三区四区小说| 色视频成人在线观看免| 一本大道综合伊人精品热热 | 国产免费观看久久| 午夜精品久久久久久久久久久| 亚洲美女淫视频| 国模套图日韩精品一区二区| 麻豆精品在线看| 国产在线精品国自产拍免费| 国产经典欧美精品| 成人激情文学综合网| 精品一区二区三区不卡 | 亚洲国产精品久久人人爱蜜臀| 亚洲激情六月丁香| 懂色av一区二区夜夜嗨| 国产精品中文欧美| 日韩电影在线观看电影| 国产精品69毛片高清亚洲| 色婷婷av一区二区三区gif| 欧美一区二区日韩一区二区| 国产区在线观看成人精品| 亚洲一区二区欧美日韩| 久久国内精品视频| 日本高清不卡一区| 久久久久久**毛片大全| 亚洲黄一区二区三区| 国产精一品亚洲二区在线视频| 91成人网在线| 国产欧美日韩激情| 久久成人综合网| 91久久免费观看| 国产视频视频一区| 性做久久久久久久免费看| 成人av片在线观看| 欧美不卡激情三级在线观看| 亚洲精品综合在线| 激情欧美一区二区三区在线观看| 色就色 综合激情| 欧美国产1区2区| 久久99久久99| 欧美日韩国产天堂| 亚洲欧美日韩电影| 粉嫩蜜臀av国产精品网站| 欧美成人vr18sexvr| 亚洲777理论| 欧美午夜在线观看| 成人欧美一区二区三区黑人麻豆| 精品亚洲免费视频| 日韩一区二区免费电影| 亚洲愉拍自拍另类高清精品| av一区二区三区四区| 国产拍揄自揄精品视频麻豆| 麻豆精品一区二区三区| 制服视频三区第一页精品| 亚洲一区二区3| 欧美伊人久久大香线蕉综合69 | 美脚の诱脚舐め脚责91 | 国产午夜精品久久久久久免费视| 日本不卡一区二区三区| 欧美日韩免费电影| 亚洲在线成人精品| 欧美日韩国产在线播放网站| 婷婷激情综合网| 欧美人妖巨大在线|