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

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

?? winsockutil.pas

?? VC++實(shí)現(xiàn)的時(shí)間同步程序
?? PAS
字號(hào):
unit WinsockUtil;

interface

uses Classes, Dialogs, SysUtils, Winsock;

var
  WSData: WSAData;

function StrToAddr(const s: string): longword;
procedure QuickSendUDP(const h: string; const port: integer;
  var Data; const DataLen: integer);
procedure GetLocalAddresses(const s: TStrings);
function HaveLocalAddress: boolean;

type
  TQuickUDPServerThread = class(TThread)
  private
    FListenPort: Word;
    listener: sockaddr_in;
    arg: integer;
    ExceptMsg: string;
    procedure ShowError;
  protected
    Sock: TSocket;
    Remote: sockaddr_in;
    Req: array[1..1024] of byte;
    Req_Len: integer;
    procedure Execute; override;
    procedure DoRequest; virtual; abstract;
  public
    constructor Create(const Suspended: boolean; const ListenPort: Word);
  end;

implementation

type
  PLongWord = ^LongWord;

function StrToAddr(const s: string): longword;

var
  pHE: PHostEnt;

begin
  result := inet_addr(pchar(s));
  if result = longword(INADDR_NONE) then
    begin
      pHE := GetHostByName(pchar(s));
      if pHE = nil then
        result := longword(INADDR_NONE)
      else
        result := LongWord(PLongWord(pHE^.h_addr_list^)^);
    end;
end;

function HaveLocalAddress: boolean;

var
  sl: TStringList;

begin
  sl := TStringList.Create;
  try
    GetLocalAddresses(sl);
    result := (sl.Count <> 0) and ((sl.Count > 1) or (sl[0] <> '127.0.0.1'));
  finally
    sl.Free;
  end;
end;

procedure GetLocalAddresses(const s: TStrings);

type
  TaPInAddr = array[0..250] of PInAddr;
  PaPInAddr = ^TaPInAddr;

var
  i: integer;
  HostAddr: PHostEnt;
  PAdrPtr: PaPInAddr;
  HostName: string;

begin
  s.Clear;
  setlength(HostName,255);
  GetHostName(pchar(HostName),255);
  setlength(HostName,strlen(pchar(HostName)));
  HostAddr := GetHostByName(PChar(HostName));
  if HostAddr = nil then
    exit;
  PAdrPtr := PAPInAddr(HostAddr^.h_addr_list);
  i := 0;
  while PAdrPtr^[i] <> nil do
  begin
    s.Add(inet_ntoa(PAdrPtr^[I]^));
    Inc(I);
  end;
end;


procedure QuickSendUDP(const h: string; const port: integer;
  var Data; const DataLen: integer);

var
  addr: sockaddr_in;
  sock: TSocket;

begin
  addr.sin_family := AF_INET;
  addr.sin_addr.S_addr := StrToAddr(h);
  addr.sin_port := htons(port);
  sock := Socket(AF_INET, SOCK_DGRAM, 0);
  if sock = INVALID_SOCKET then
    raise exception.create('Could not create socket');
  try
    if sendto(sock,Data,DataLen,0,addr,sizeof(addr)) = SOCKET_ERROR then
      raise exception.create('Could not send packet');
  finally
    closesocket(sock);
  end;
end;

constructor TQuickUDPServerThread.Create(const Suspended: boolean; const ListenPort: Word);
begin
  inherited Create(true);
  FListenPort := ListenPort;
  if not Suspended then
    Resume;
end;

procedure TQuickUDPServerThread.ShowError;
begin
  ShowMessage(ExceptMsg);
end;

procedure TQuickUDPServerThread.Execute;
begin
  try
    FreeOnTerminate := true;
    sock := Socket(AF_INET, SOCK_DGRAM, 0);
    if sock = INVALID_SOCKET then
      raise exception.create('Could not allocate a socket: Winsock error '+inttostr(WSAGetLastError));
    arg := 10000; // 10 seconds
    if setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,@arg,sizeof(arg)) = SOCKET_ERROR then
      raise exception.create('Could set socket timeout: Winsock error '+inttostr(WSAGetLastError));
    fillchar(listener,sizeof(listener),0);
    listener.sin_family := AF_INET;
    listener.sin_addr.S_addr := INADDR_ANY;
    listener.sin_port := htons(FListenPort);
    if bind(sock,listener,sizeof(sockaddr_in)) = SOCKET_ERROR then
      raise exception.create('Cannot bind to address: Winsock error '+inttostr(WSAGetLastError));
    while not Terminated do
      begin
        arg := sizeof(sockaddr_in);
        Req_Len := recvfrom(sock,Req,sizeof(Req),0,remote,arg);
        if Req_Len <> SOCKET_ERROR then
          DoRequest;
      end;
    closesocket(sock);
  except
    on e: Exception do
      begin
        ExceptMsg := e.Message;
        Synchronize(ShowError);
      end;
  end;
end;

initialization
  WSAStartup($0101,WSData);
finalization
  WSACleanup;
end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久久| 精品影视av免费| 国产老肥熟一区二区三区| 色噜噜狠狠色综合中国| 久久久久久久久久久久久女国产乱| 夜夜嗨av一区二区三区| 国产精品66部| 4438x亚洲最大成人网| 综合久久综合久久| 国产在线精品一区二区不卡了 | 国产精品一区不卡| 欧美在线视频日韩| 中文字幕一区av| 国产精品12区| 精品国产乱码久久久久久夜甘婷婷| 亚洲成人一区二区在线观看| 99热国产精品| 欧美国产精品一区二区| 精品一区二区三区欧美| 欧美日本精品一区二区三区| 亚洲视频香蕉人妖| 成人午夜av影视| 日本一区二区三区dvd视频在线 | 国产精品免费视频一区| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩国产123区| 亚洲国产视频a| 色88888久久久久久影院野外| 一区视频在线播放| 成人免费黄色在线| 国产欧美视频一区二区三区| 国产在线一区观看| 久久综合狠狠综合久久综合88| 日韩精彩视频在线观看| 欧美日本一区二区三区四区 | 久久久精品蜜桃| 国内外精品视频| 精品国产乱码久久久久久久| 美女视频免费一区| 欧美v亚洲v综合ⅴ国产v| 麻豆精品一二三| 欧美大片在线观看一区| 久久av中文字幕片| 欧美精品一区男女天堂| 韩国毛片一区二区三区| 国产真实乱偷精品视频免| 亚洲精品在线三区| 国产一区三区三区| 国产欧美精品一区二区三区四区| 国产成人午夜视频| 国产精品私人自拍| 99热99精品| 亚洲一区二区欧美日韩| 欧美三级欧美一级| 日韩av电影免费观看高清完整版 | 亚洲一二三区在线观看| 欧美三级电影一区| 日韩不卡一区二区三区| 日韩欧美一二三四区| 国产剧情一区二区| 亚洲欧洲精品成人久久奇米网| 91在线porny国产在线看| 亚洲精品成人精品456| 欧美午夜在线观看| 日本美女视频一区二区| 精品美女一区二区| 成人三级伦理片| 亚洲蜜臀av乱码久久精品| 欧美三级欧美一级| 精品一区二区三区免费观看| 中文字幕av免费专区久久| 色综合久久久久综合99| 日韩精品国产精品| 国产女主播一区| 欧美在线观看一区二区| 另类的小说在线视频另类成人小视频在线 | 日韩一区二区三区高清免费看看 | 伊人色综合久久天天| 欧美日韩国产另类一区| 韩国一区二区三区| 亚洲欧美日韩在线不卡| 日韩一区二区三区视频| 成人av综合在线| 亚洲已满18点击进入久久| 91麻豆精品国产91| 国产美女主播视频一区| 亚洲三级在线免费| 日韩欧美黄色影院| 成人精品一区二区三区中文字幕 | 久久色.com| 色偷偷一区二区三区| 免费黄网站欧美| 国产精品国产精品国产专区不蜜| 91福利国产成人精品照片| 日本不卡视频一二三区| 国产精品免费av| 欧美精品第1页| 成人福利视频在线看| 日韩在线观看一区二区| 国产精品美女久久久久久久网站| 欧美日韩一级片在线观看| 国产不卡一区视频| 亚洲国产aⅴ天堂久久| 国产视频一区在线观看 | av亚洲精华国产精华| 五月婷婷另类国产| 中文字幕一区二区三区精华液| 欧美一二三区精品| 91麻豆文化传媒在线观看| 久久99精品久久久久久久久久久久| 国产精品久久久久久久久免费樱桃 | 美女视频黄免费的久久| 亚洲欧美国产77777| 久久综合九色综合97婷婷女人| 欧美三电影在线| 国产成人超碰人人澡人人澡| 日韩电影网1区2区| 一区二区三区精品久久久| 国产色一区二区| 欧美一区二区日韩| 在线观看91视频| 99精品热视频| 国产高清亚洲一区| 蜜臀久久99精品久久久久宅男| 一区二区三区高清在线| 中文一区二区完整视频在线观看 | 91浏览器在线视频| 国产九色sp调教91| 九色porny丨国产精品| 婷婷丁香激情综合| 亚洲一区二区欧美日韩| 亚洲同性同志一二三专区| 国产亚洲综合av| 日韩欧美在线观看一区二区三区| 欧美日韩一区二区电影| 91丨porny丨蝌蚪视频| 风流少妇一区二区| 国产一二精品视频| 国模大尺度一区二区三区| 日韩国产欧美三级| 日韩精品一二三| 午夜视频一区二区| 亚洲网友自拍偷拍| 亚洲精品免费一二三区| 1区2区3区精品视频| 国产欧美精品一区aⅴ影院 | 精品日产卡一卡二卡麻豆| 5858s免费视频成人| 欧美三级电影一区| 欧美日韩亚洲综合| 欧美三级电影在线看| 欧美日韩中文精品| 欧美午夜精品一区二区蜜桃| 欧美在线观看视频一区二区三区| 91麻豆蜜桃一区二区三区| 99精品久久久久久| 91同城在线观看| 91无套直看片红桃| 色综合久久久久综合99| 日本高清不卡一区| 在线视频你懂得一区二区三区| 色婷婷综合在线| 欧美性受极品xxxx喷水| 欧美年轻男男videosbes| 欧美乱妇15p| 日韩一级二级三级精品视频| 日韩欧美国产不卡| 精品欧美乱码久久久久久 | 欧美三级电影在线观看| 在线电影欧美成精品| 欧美一区二区三区思思人| 欧美成人精品高清在线播放| 精品国内片67194| 国产亚洲精品资源在线26u| 日本一区二区三区国色天香 | 亚洲高清免费在线| 日韩不卡一二三区| 激情图片小说一区| 国v精品久久久网| 亚洲色图色小说| 午夜一区二区三区在线观看| 日韩精品成人一区二区在线| 韩日欧美一区二区三区| 国产成人在线网站| 91影院在线免费观看| 欧美三级日韩在线| 欧美sm极限捆绑bd| 国产精品乱码久久久久久| 一区二区三区欧美在线观看| 日韩 欧美一区二区三区| 国内成+人亚洲+欧美+综合在线| 不卡一区中文字幕| 欧美影片第一页| 日韩精品一区在线| 国产精品久久久久久久岛一牛影视 | 欧美精品久久久久久久多人混战 | 中文字幕va一区二区三区| 一二三区精品视频| 免费观看久久久4p| 99久久99久久精品国产片果冻|