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

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

?? nmudp.pas

?? DELPHI里面一些常用的控件
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
{$IFDEF VER100}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER110}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER120}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER125}
{$DEFINE NMF3}
{$ENDIF}

unit NMUDP;

interface

uses
  Winsock, Classes, Sysutils, WinTypes, Messages, Forms, NMConst;
{$IFDEF VER110}
{$OBJEXPORTALL On}
{$ENDIF}
{$IFDEF VER120}
{$OBJEXPORTALL On}
{$ENDIF}
{$IFDEF VER125}
{$OBJEXPORTALL On}
{$ENDIF}

const

   //  CompName           ='TNMUDP';

   //  Major_Version      ='4';
   //  Minor_Version      ='02';
   //  Date_Version       ='012798';

   { Levels for reporting Status Messages}
  Status_None = 0;
  Status_Informational = 1;
  Status_Basic = 2;
  Status_Routines = 4;
  Status_Debug = 8;
  Status_Trace = 16;


  WM_ASYNCHRONOUSPROCESS = WM_USER + 101; {Message number for asynchronous socket messages}

const {protocol}
  Const_cmd_true = 'TRUE';

type

  UDPSockError = class(Exception);

   {Event Handlers}

  TOnErrorEvent = procedure(Sender: TComponent; errno: word; Errmsg: string) of object;
  TOnStatus = procedure(Sender: TComponent; status: string) of object;
  TOnReceive = procedure(Sender: TComponent; NumberBytes: Integer; FromIP: string; Port: Integer) of object;
  THandlerEvent = procedure(var handled: boolean) of object;
  TBuffInvalid = procedure(var handled: boolean; var Buff: array of char; var Length: Integer) of object;
  TStreamInvalid = procedure(var handled: boolean; Stream: TStream) of object;

  TNMUDP = class(TComponent)
  private
    IBuff: array[0..2048] of char;
    IBuffSize: Integer;
    FRemoteHost: string;
    FRemotePort: Integer;
    FLocalPort: Integer; {Port at server to connect to}
    RemoteAddress, RemoteAddress2: TSockAddr; {Address of remote host}
    FSocketWindow: hwnd;
    Wait_Flag: boolean; {Flag to indicate if synchronous request completed or not}
    RemoteHostS: PHostEnt; {Entity to store remote host linfo from a Hostname request}
    Canceled: boolean; {Flag to indicate request cancelled}
    Succeed: boolean; {Flag for indicating if synchronous request succeded}
    MyWSAData: TWSADATA; {Socket Information}
    FOnStatus: TOnStatus; {} {Event handler on a status change}
    FReportLevel: Integer; {Reporting Level}
    _status: string; {Current status}
    _ProcMsg: boolean; {Flag to supress or enable socket message processing}
    FLastErrorno: Integer; {The last error Encountered}
    FOnErrorEvent: TOnErrorEvent; {} {Event handler for error nitification}
    FOnDataReceived: TOnReceive;
    FOnDataSend: TNotifyEvent;
    FOnInvalidHost: THandlerEvent;
    FOnStreamInvalid: TStreamInvalid;
    FOnBufferInvalid: TBuffInvalid;
    procedure WndProc(var message: TMessage);
    procedure ResolveRemoteHost;
    procedure SetLocalPort(NewLocalPort: Integer);
    procedure ProcessIncomingdata;
  protected
    procedure StatusMessage(Level: byte; value: string);
    function ErrorManager(ignore: word): string;
    function SocketErrorStr(errno: word): string;
    procedure Wait;
  public
    EventHandle: THandle;
    ThisSocket: TSocket; {The socket number of the Powersocket}
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Loaded; override;
    procedure Cancel;
    procedure SendStream(DataStream: TStream);
    procedure SendBuffer(Buff: array of char; Length: Integer);
    procedure ReadStream(DataStream: TStream);
    procedure ReadBuffer(var Buff: array of char; var Length: Integer);
  published
    property RemoteHost: string read FRemoteHost write FRemoteHost; {Host Nmae or IP of remote host}
    property RemotePort: Integer read FRemotePort write FRemotePort; {Port of remote host}
    property LocalPort: Integer read FLocalPort write SetLocalPort; {Port of remote host}
    property ReportLevel: Integer read FReportLevel write FReportLevel;
    property OnDataReceived: TOnReceive read FOnDataReceived write FOnDataReceived;
    property OnDataSend: TNotifyEvent read FOnDataSend write FOnDataSend;
    property OnStatus: TOnStatus read FOnStatus write FOnStatus;
    property OnInvalidHost: THandlerEvent read FOnInvalidHost write FOnInvalidHost;
    property OnStreamInvalid: TStreamInvalid read FOnStreamInvalid write FOnStreamInvalid;
    property OnBufferInvalid: TBuffInvalid read FOnBufferInvalid write FOnBufferInvalid;
  end; {_ TNMUDP               = class(TComponent) _}

implementation

procedure WaitforSync(Handle: THandle);
begin
  repeat
    if MsgWaitForMultipleObjects(1, Handle, False,
      INFINITE, QS_ALLINPUT)
      = WAIT_OBJECT_0 + 1
      then Application.ProcessMessages
    else Break;
  until True = False;
end; {_WaitforSync_}

procedure TNMUDP.Cancel;
begin
  StatusMessage(Status_Debug, sPSk_Cons_msg_Cancel); {Status Message}
  Canceled := True; {Set Cancelled to true}
  SetEvent(EventHandle);
end;


constructor TNMUDP.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  _ProcMsg := False; {Inhibit Event processing for socket}
   { Initialize memory }
  GetMem(RemoteHostS, MAXGETHOSTSTRUCT); {Initialize memory for host address structure}
  FSocketWindow := AllocateHWnd(WndProc); {Create Window handle to receive message notification}
   { Set Variables }
  FReportLevel := Status_Informational; {Set Default Reporting Level}
  Canceled := False; {Cancelled flag off}
  EventHandle := CreateEvent(nil, True, False, '');
  StatusMessage(Status_Debug, Cons_Msg_Wsk); {Status Message}
  if WSAStartUp($0101, MyWSAData) = 0 then
  try
    ThisSocket := Socket(AF_INET, SOCK_DGRAM, 0); {Get a new socket}
    if ThisSocket = TSocket(INVALID_SOCKET) then
      ErrorManager(WSAEWOULDBLOCK); {If error handle error}
    setsockopt(ThisSocket, SOL_SOCKET, SO_DONTLINGER, Const_cmd_true, 4);
  except
    WSACleanup; {If error Cleanup}
    raise; {Pass exception to calling function}
  end {_ try _}
  else {_ NOT if WSAStartUp($0101, MyWSADATA) = 0 then _}
    ErrorManager(WSAEWOULDBLOCK); {Handle Statrtup error}
  _ProcMsg := True;
end; {_ constructor TNMUDP.Create(AOwner: TComponent); _}

{*******************************************************************************************
Destroy Power Socket
********************************************************************************************}

destructor TNMUDP.Destroy;
begin
   {cancel; }
  FreeMem(RemoteHostS, MAXGETHOSTSTRUCT); {Free memory for fetching Host Entity}
  DeAllocateHWnd(FSocketWindow); {Release window handle for Winsock messages}
  CloseHandle(EventHandle);
  WSACleanup; {Clean up Winsock}
  inherited Destroy; {Do inherited destroy method}
end; {_ destructor TNMUDP.Destroy; _}

procedure TNMUDP.SetLocalPort(NewLocalPort: Integer);
begin
  if ThisSocket <> 0 then closesocket(ThisSocket);
  WSACleanup;
  if WSAStartUp($0101, MyWSAData) = 0 then
  try
    ThisSocket := Socket(AF_INET, SOCK_DGRAM, 0); {Get a new socket}
    if ThisSocket = TSocket(INVALID_SOCKET) then
      ErrorManager(WSAEWOULDBLOCK); {If error handle error}
  except
    WSACleanup; {If error Cleanup}
    raise; {Pass exception to calling function}
  end {_ try _}
  else {_ NOT if WSAStartUp($0101, MyWSADATA) = 0 then _}
    ErrorManager(WSAEWOULDBLOCK); {Handle Statrtup error}
  FLocalPort := NewLocalPort;
  Loaded;
end; {_ procedure TNMUDP.SetLocalPort(NewLocalPort: integer); _}


procedure TNMUDP.Loaded;
var
  buf: array[0..17] of char;
begin
  if not (csDesigning in ComponentState) then
  begin
    RemoteAddress2.sin_addr.S_addr := Inet_Addr(StrPCopy(buf, '0.0.0.0'));
    RemoteAddress2.sin_family := AF_INET; {Family = Internet address}
    RemoteAddress2.sin_port := htons(FLocalPort); {Set port to given port}
    Wait_Flag := False; {Set flag to wait}
      {Bind Socket to given address}
    Winsock.bind(ThisSocket, RemoteAddress2, SizeOf(RemoteAddress2));
      {Direct reply message to WM_WAITFORRESPONSE handler}
    WSAAsyncselect(ThisSocket, FSocketWindow, WM_ASYNCHRONOUSPROCESS, FD_READ);
  end; {_ if not (csDesigning in ComponentState) then _}
end; {_ procedure TNMUDP.Loaded; _}

{*******************************************************************************************
Resolve IP Address of Remote Host
********************************************************************************************}

procedure TNMUDP.ResolveRemoteHost;
var
  buf: array[0..127] of char;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区日韩精品欧美| 成人黄色大片在线观看| 精品一区二区三区欧美| 激情文学综合网| 国产成人av在线影院| 99视频精品在线| 精品国产一区a| 国产精品色噜噜| 亚洲成人自拍网| 国产精品正在播放| 91国产视频在线观看| 精品免费日韩av| 亚洲综合免费观看高清完整版在线 | 亚洲精品久久嫩草网站秘色| 偷窥少妇高潮呻吟av久久免费| 国产综合久久久久影院| 99精品在线观看视频| 91精品国产乱码久久蜜臀| 欧美高清在线视频| 午夜精品福利在线| av电影在线观看不卡| 欧美第一区第二区| 亚洲综合丝袜美腿| 粉嫩av一区二区三区在线播放| 欧美日韩视频第一区| 日本一区二区免费在线观看视频| 亚洲国产一区在线观看| 国产成人免费视| 欧美精品一卡两卡| 国产精品传媒入口麻豆| 九九国产精品视频| 欧美在线视频你懂得| 国产精品日韩精品欧美在线| 日本欧美一区二区在线观看| 91亚洲精品乱码久久久久久蜜桃| 日韩免费在线观看| 亚洲国产中文字幕在线视频综合| 成人97人人超碰人人99| 日韩亚洲欧美成人一区| 亚洲综合一区二区三区| 床上的激情91.| 欧美不卡视频一区| 天堂成人免费av电影一区| 91丝袜呻吟高潮美腿白嫩在线观看| 久久色在线视频| 美国十次了思思久久精品导航| 欧美亚洲综合另类| 亚洲色图清纯唯美| 成人免费视频网站在线观看| 精品乱码亚洲一区二区不卡| 肉丝袜脚交视频一区二区| 色婷婷久久综合| 亚洲欧美日韩在线不卡| 成人开心网精品视频| 久久精品一区二区| 激情图片小说一区| 日韩欧美专区在线| 免费人成黄页网站在线一区二区| 欧美在线免费播放| 一区二区三区91| 在线观看亚洲专区| 亚洲精品一二三四区| 91在线高清观看| 日韩码欧中文字| 99riav一区二区三区| 欧美激情综合五月色丁香小说| 国产精品99久久久久久宅男| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩高清在线电影| 5858s免费视频成人| 日韩精品高清不卡| 欧美绝品在线观看成人午夜影视| 亚洲一区二区av在线| 欧美日韩视频第一区| 午夜精品123| 日韩亚洲国产中文字幕欧美| 日韩国产在线观看| 欧美一级理论性理论a| 免费观看在线综合色| 日韩美女视频一区二区在线观看| 青娱乐精品视频在线| 精品国产免费久久| 国产精选一区二区三区| 国产精品欧美一区喷水| av男人天堂一区| 亚洲综合区在线| 337p亚洲精品色噜噜| 久久精品99国产精品日本| 精品女同一区二区| 国产a久久麻豆| 亚洲图片你懂的| 欧洲av在线精品| 美女爽到高潮91| 欧美极品xxx| 一本色道a无线码一区v| 午夜精品久久久久久久久久久| 91精品一区二区三区久久久久久 | 欧美成人bangbros| 成人开心网精品视频| 一区二区三区在线免费视频| 欧美日韩另类一区| 久99久精品视频免费观看| 久久久美女毛片| 一本色道久久加勒比精品| 日韩福利视频导航| 国产色综合久久| 91麻豆视频网站| 日本91福利区| 国产精品视频yy9299一区| 色猫猫国产区一区二在线视频| 婷婷久久综合九色国产成人 | 久久99精品国产.久久久久| 国产喂奶挤奶一区二区三区| 色婷婷综合久久久久中文 | 日韩欧美精品在线视频| 成人性视频网站| 亚洲午夜av在线| 精品1区2区在线观看| 99久久夜色精品国产网站| 午夜欧美2019年伦理| 欧美国产97人人爽人人喊| 欧美日韩精品免费观看视频| 国产精品88888| 亚洲第一激情av| 国产欧美精品日韩区二区麻豆天美| 一本久久a久久免费精品不卡| 久色婷婷小香蕉久久| 亚洲美女屁股眼交| 久久久不卡网国产精品二区| 91极品视觉盛宴| 国产精品正在播放| 日韩av一二三| 亚洲天堂网中文字| 精品日韩在线一区| 日本韩国精品一区二区在线观看| 久久丁香综合五月国产三级网站 | 欧美在线观看视频一区二区三区 | 国产欧美日韩激情| 欧美久久一二区| 91免费视频网址| 国产精品一色哟哟哟| 亚洲va在线va天堂| 国产精品国产三级国产普通话三级 | 精品黑人一区二区三区久久| 91精品1区2区| 成人国产视频在线观看| 精品一区二区三区免费毛片爱| 一区二区三区在线观看视频| 久久久久久久网| 777久久久精品| 99久久综合精品| 国产一区二区0| 青青草一区二区三区| 夜夜爽夜夜爽精品视频| 欧美高清在线视频| 欧美变态tickle挠乳网站| 欧美综合在线视频| 91污在线观看| 成人h动漫精品一区二| 国产在线乱码一区二区三区| 婷婷综合久久一区二区三区| 亚洲精品伦理在线| 国产精品国模大尺度视频| 国产欧美日韩另类一区| 精品国产91久久久久久久妲己 | 蜜桃一区二区三区在线观看| 亚洲国产欧美一区二区三区丁香婷| 中文字幕一区二区三区在线观看| 久久久久久久网| 亚洲国产成人高清精品| 国产精品国产三级国产aⅴ入口| 久久久久久久久久电影| 欧美r级在线观看| 欧美一区二区三区免费大片| 欧美性做爰猛烈叫床潮| 日本高清视频一区二区| 99精品在线免费| 91蝌蚪porny九色| 色婷婷精品大视频在线蜜桃视频| 不卡的电影网站| 不卡的看片网站| 91视频在线看| 欧美最猛性xxxxx直播| 欧美网站一区二区| 欧美日韩综合不卡| 欧美日本一区二区三区四区| 在线观看视频一区| 欧美三级电影一区| 欧美日韩一区二区在线观看| 欧美性大战久久久久久久| 欧美日免费三级在线| 欧美日韩免费视频| 91麻豆精品国产自产在线观看一区 | 中文字幕成人在线观看| 国产精品区一区二区三| 亚洲女女做受ⅹxx高潮| 亚洲五码中文字幕| 麻豆91在线观看| 国产一区二区三区美女| 风间由美中文字幕在线看视频国产欧美|