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

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

?? zsocket.pas

?? 一款由Zlib來的數學公式解析器
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    FHostName := IP2Str(RevertInt(FIP));
  Result := FHostName;
end;

procedure TURL.SetHostName(const NewHost: string);
begin
  FHostName := NewHost;
  FIP := Name2IP(FHostName);
end;

procedure TURL.SetIP(NewIP: u_long);
begin
  FIP := RevertInt(NewIP);
  FHostName := '';
  if FIP = $100007F then
    FHostName := 'localhost'
  else
    try
      FHostName := IP2Name(FIP);
    except
      FHostName := IP2Str(FIP);
    end;
end;

function TURL.GetURL: string;
begin
  if FPath = '' then
    FPath := HostName + ':' + IntToStr(FPort) + FileName;
  Result := FPath;
end;

procedure TURL.SetUrl(Value: string);
var
  Temp: string;
begin
  FPath  := Value;
  Temp   := StrTok(Value,':/@ ');
  FPort  := 0;
  FProto := '';
  if StrCmpBegin(Value, '://') then
  begin
    FProto := LowerCase(Temp);
    Value  := Copy(Value,4,Length(Value)-3);
    Temp   := StrTok(Value,':/@ ');
  end;

  if FProto = 'file' then
  begin
    FHostName := '';
    FIP       := 0;
    FFileName := Temp + StrTok(Value,'?');
  end
  else
  begin
    FHostName := Temp;
    FIP       := Name2IP(FHostName);
    if StrCmpBegin(Value,':') then
    begin
      Temp  := StrTok(Value,':/@ ');
      FPort := StrToIntDef(Temp,0);
    end;
    FFileName := Value;
  end;

  if FProto = '' then FProto := 'http';
  if FFileName = '' then FFileName := '/';

  if FProto <> 'file' then
  begin
    Temp := IP2Name(FIP);
    if Temp<>'' then FHostName := Temp;
  end;

  FPath := FProto + '://' + FHostName;
  if FPort <> 0 then FPath := FPath + IntToStr(FPort);
  if (FPath[Length(FPath)]<>'/') and (FFileName[1]<>'/') then
    FPath := FPath + '/';
  FPath := FPath + FFileName;

  if (FProto = 'http') and (FPort = 0) then FPort := 80;
  if (FProto = 'ftp') and (FPort = 0) then  FPort := 21;
end;

procedure TURL.Assign(NewURL: TURL);
begin
  FPort     := NewURL.FPort;
  FHostName := NewURL.FHostName;
  FFileName := NewURL.FFileName;
  FIP       := NewURL.FIP;
end;

{******************* TInetSocket implementation ***********************}

{ Check socket status }
function TInetSocket.IsGood: Boolean;
begin
  Result := (FSid >= 0);
end;

function TInetSocket.QueueSize: LongInt;
begin
  Result:=0;
  ioctlsocket(FSid, FIONREAD, Result);
end;

procedure TInetSocket.SetEvents(Handle: HWND; Msg: u_int; Event: LongInt);
begin
  WSAAsyncSelect(FSid, Handle, Msg, Event);
  WinSocketCheckError;
end;

procedure TInetSocket.SetOptions(Cmd: LongInt; var Arg: u_long);
begin
  ioctlsocket(FSid, cmd, arg);
end;

constructor TInetSocket.Create;
begin
  FServer := TURL.Create;
  FClient := TURL.Create;
  FSid    := 0;
end;

constructor TInetSocket.CreateByHandle(NewSid: Integer);
begin
  FServer := TURL.CreateByName('localhost', 0, '/');
  FClient := TURL.CreateByIP(0, 0, '/');
  FSid    := NewSid;
end;

destructor TInetSocket.Destroy;
begin
  try
    CloseConnect;
  finally
    FServer.Free;
    FClient.Free;
  end;
end;

procedure TInetSocket.CloseConnect;
begin
  shutdown (FSid,2);
//  WinSocketCheckError;
  closesocket(FSid);
//  WinSocketCheckError;
end;

{************** TInetClientSocket implementation ***************}

function TInetClientSocket.IsArrive: Boolean;
begin
  Result := (QueueSize > 0);
end;

function TInetClientSocket.Write(var Buf; Len,Flag: Integer): Integer;
begin
  Result := Send(FSid, Buf, Len, Flag );
  if Result = SOCKET_ERROR then WinSocketCheckError;
end;

function TInetClientSocket.Read(var Buf; Len,Flag: Integer ): Integer;
begin
  Result := Recv(FSid, Buf, Len, Flag);
  if Result = SOCKET_ERROR then WinSocketCheckError;
end;

constructor TInetClientSocket.Create;
begin
  FServer := TURL.Create;
  FClient := TURL.Create;
  FSid    := 0;
end;

constructor TInetClientSocket.CreateByName(const Name: string; Port: Integer);
begin
  FServer := TURL.CreateByName(Name, Port, '/');
  FClient := TURL.Create;
  FSid    := Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
  if FSid = INVALID_SOCKET then WinSocketCheckError;
end;

constructor TInetClientSocket.CreateByIP(IP: u_long; Port: Integer);
begin
  FServer := TURL.CreateByIP(IP, Port, '/');
  FClient := TURL.Create;
  FSid    := Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
  if FSid = INVALID_SOCKET then WinSocketCheckError;
end;

constructor TInetClientSocket.CreateByUrl(NewURL: TURL);
begin
  FServer := TURL.Create;
  FServer.Assign(newURL);
  FClient := TURL.Create;
  FSid    := Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
  if FSid = INVALID_SOCKET then WinSocketCheckError;
end;

constructor TInetClientSocket.CreateByHandle(NewSid: Integer);
begin
  FServer := TURL.CreateByName('localhost', 0, '/');
  FClient := TURL.CreateByIP( 0, 0, '/');
  FSid    := NewSid;
end;

function TInetClientSocket.ConnectSocket(const HostNm: string; Port: Integer): Integer;
var
  Url: TURL;
begin
  Url := TURL.CreateByName(HostNm, Port, '/');
  try
    Result := ConnectSocketByURL(url);
  finally
    Url.Free;
  end;
end;

function TInetClientSocket.ConnectSocketByURL(Url: TURL): Integer;
var
  Addr: TSockAddrIn;
  Len:  Integer;
begin
  Len := url.FillAddr(Addr);
  FRc := Connect(FSid, Addr, Len);
  if FRc = SOCKET_ERROR then WinSocketCheckError;
  Result := FRc;
end;

{**************** TInetServerSocket implementation ***************}

function TInetServerSocket.BindSocket: Integer;
var
  addr: TSockAddrIn;
  len:  u_long;
begin
  FSid := socket(AF_INET, SOCK_STREAM, 0);
  WinSocketCheckError;
  len  := FServer.FillAddr( addr );
  FRc  := bind(FSid, addr, len);
  WinSocketCheckError;
  if FRc < 0 then
  begin
    FRc := getsockname(FSid, addr, len);
    if FRc < 0 then CloseConnect;
    FSid := -1;
  end;
  Result := FRc;
end;

constructor TInetServerSocket.Create;
begin
  FServer := TURL.Create;
  FClient := TURL.Create;
end;

constructor TInetServerSocket.CreateByName(const Name: string; Port: Integer);
begin
  FServer := TURL.CreateByName(Name, Port, '/');
  FClient := TURL.Create;
  BindSocket;
end;

constructor  TInetServerSocket.CreateByIP(IP: u_long; Port: Integer);
begin
  FServer := TURL.CreateByIP(IP, Port, '/');
  FClient := TURL.Create;
  BindSocket;
end;

constructor TInetServerSocket.CreateByURL(NewURL: TURL);
begin
  FServer := TURL.Create;
  FServer.Assign(NewURL);
  FClient := TURL.Create;
  BindSocket;
end;

constructor TInetServerSocket.CreateByHandle(NewSid: Integer);
begin
  FServer := TURL.CreateByName('localhost', 0, '/');
  FClient := TURL.Create;
  FSid    := NewSid;
end;

function TInetServerSocket.ListenConnect: Integer;
begin
  Result := listen(FSid,BACKLOG_NUM);
  WinSocketCheckError;
end;

function TInetServerSocket.AcceptConnect: TInetClientSocket;
var
  Sock: TInetClientSocket;
  Addr: TSockAddrIn;
  Len:  u_long;
begin
  Len := SizeOf(Addr);
  FRc := accept(FSid, @Addr, @Len);
//  WinSocketCheckError;
  if FRc > 0 then
  begin
    FClient.IP   := RevertInt(Addr.sin_addr.s_addr);
    FClient.Port := Addr.sin_port;
    Sock         := TInetClientSocket.CreateByHandle(FRc);
    Sock.Server.Assign(FServer);
    Sock.Client.Assign(FClient);
    Result       := Sock;
  end else
    Result := nil;
end;

function TInetServerSocket.ShutdownConnect(Mode: Integer): Integer;
begin
  Result := shutdown(FSid,Mode);
  WinSocketCheckError;
end;

initialization
  WinSocketStartup;
finalization
  WinSocketCleanup;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人免费电影| 日本一区二区三区四区| 亚洲五码中文字幕| 欧美色窝79yyyycom| 丝瓜av网站精品一区二区| 欧美一区二区三区的| 久久精品免费看| 久久久久国产精品人| 成人精品gif动图一区| 亚洲人精品午夜| 欧美揉bbbbb揉bbbbb| 青青草国产成人99久久| 精品日产卡一卡二卡麻豆| 国产 欧美在线| 亚洲精品日产精品乱码不卡| 欧美精品一级二级三级| 精品一区二区三区视频在线观看| 久久久久久久精| 91亚洲国产成人精品一区二三 | 色呦呦国产精品| 亚洲第一成年网| 日韩视频一区在线观看| 韩国一区二区三区| 亚洲男同1069视频| 亚洲激情综合网| 欧美一区二区三区啪啪| 成人国产精品免费网站| 亚洲午夜一区二区三区| 欧美成人欧美edvon| 色哟哟精品一区| 美女免费视频一区二区| 亚洲欧洲性图库| 欧美成人aa大片| 色婷婷精品大在线视频| 韩国v欧美v日本v亚洲v| 亚洲综合在线免费观看| 久久久久久97三级| 欧美精品在欧美一区二区少妇| 国产精品亚洲专一区二区三区| 亚洲精品成a人| 国产亚洲精品aa午夜观看| 欧美三级日韩在线| 成人不卡免费av| 蜜乳av一区二区三区| 亚洲品质自拍视频| 国产午夜亚洲精品午夜鲁丝片 | 91.麻豆视频| 成人免费的视频| 久久国产精品72免费观看| 亚洲精品免费在线| 国产日韩精品一区二区浪潮av| 欧美日韩高清影院| 日本乱码高清不卡字幕| 福利一区二区在线观看| 美腿丝袜亚洲综合| 亚洲成人在线网站| 亚洲日本丝袜连裤袜办公室| 国产日韩三级在线| 久久这里只有精品6| 91精品国产综合久久精品图片| 日本韩国欧美三级| 99国产精品一区| 成人精品国产一区二区4080| 精东粉嫩av免费一区二区三区 | 蜜臂av日日欢夜夜爽一区| 亚洲一二三专区| 亚洲欧美日韩国产综合| 亚洲欧洲成人精品av97| 久久久精品中文字幕麻豆发布| 日韩欧美资源站| 制服.丝袜.亚洲.另类.中文| 日本道在线观看一区二区| 99r精品视频| 97精品视频在线观看自产线路二| 国产91精品久久久久久久网曝门| 国产在线视视频有精品| 美女精品自拍一二三四| 免费在线观看一区| 免费三级欧美电影| 免费人成黄页网站在线一区二区| 日韩av中文字幕一区二区三区| 亚洲第一精品在线| 日韩经典中文字幕一区| 免费精品99久久国产综合精品| 日本伊人午夜精品| 麻豆精品国产传媒mv男同| 日韩成人精品视频| 韩国欧美国产1区| 成人性生交大片免费看视频在线| 粉嫩av一区二区三区在线播放 | 欧美欧美午夜aⅴ在线观看| 欧美日韩国产欧美日美国产精品| 欧美日韩久久久一区| 日韩一区二区免费在线观看| 欧美v亚洲v综合ⅴ国产v| 久久久91精品国产一区二区精品| 国产嫩草影院久久久久| 亚洲欧美偷拍另类a∨色屁股| 亚洲黄色免费电影| 日本人妖一区二区| 国产91综合网| 在线观看亚洲精品视频| 欧美一区二区在线看| 欧美精品一区二区三区蜜桃| 国产视频亚洲色图| 一级日本不卡的影视| 奇米影视一区二区三区小说| 国产成人精品影视| 欧洲一区在线观看| 精品免费视频.| 亚洲欧洲精品天堂一级| 午夜电影网一区| 国产黄色成人av| 在线视频一区二区三| 日韩精品一区二区三区四区| 国产精品色哟哟网站| 亚洲国产欧美在线人成| 国产精品一级在线| 欧美午夜精品久久久久久孕妇 | 成人网在线播放| 欧美日韩免费不卡视频一区二区三区| 精品国产麻豆免费人成网站| 综合久久久久久| 蜜臀av一区二区在线免费观看| 成人三级伦理片| 欧美丰满高潮xxxx喷水动漫 | 亚洲少妇最新在线视频| 青青草国产精品97视觉盛宴| eeuss鲁片一区二区三区在线观看| 欧美日韩一区二区三区在线看| 精品国产免费一区二区三区四区| 亚洲靠逼com| 国产乱码精品一区二区三区五月婷| 色婷婷激情综合| 久久久精品欧美丰满| 天天色综合天天| 91在线视频网址| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲一区二区三区精品在线| 丁香婷婷综合网| 精品少妇一区二区三区| 亚洲va天堂va国产va久| 91在线免费视频观看| 久久亚洲捆绑美女| 日本不卡一区二区三区高清视频| va亚洲va日韩不卡在线观看| 久久一区二区视频| 蜜桃视频第一区免费观看| 欧美婷婷六月丁香综合色| 亚洲欧美在线视频| 黑人精品欧美一区二区蜜桃| 日韩欧美中文一区二区| 亚洲va国产va欧美va观看| 色综合久久综合| 亚洲私人影院在线观看| 国产91精品在线观看| 久久―日本道色综合久久| 蜜桃视频在线一区| 欧美一区二区三区视频在线 | 粉嫩av一区二区三区| 久久国产精品区| 91麻豆精品久久久久蜜臀| 亚洲一区二区精品久久av| 91污片在线观看| 中文字幕一区二区三区蜜月 | 91亚洲大成网污www| 国产精品美女久久久久aⅴ| 国产成人在线观看免费网站| 久久精品一区蜜桃臀影院| 国产一区 二区 三区一级| www欧美成人18+| 国产精品自拍网站| 日本一区二区在线不卡| 国产成人午夜电影网| 国产精品嫩草影院com| 不卡在线观看av| 亚洲精品视频免费观看| 色综合久久99| 亚洲国产中文字幕| 91精品久久久久久久99蜜桃| 日本不卡在线视频| 精品久久久久久久久久久久包黑料 | 国产一区美女在线| 国产网站一区二区| 不卡一二三区首页| 亚洲另类春色校园小说| 欧美日韩国产成人在线免费| 免费成人在线观看视频| 精品日韩在线观看| 成人精品免费看| 一区二区免费看| 欧美一个色资源| 国产精品一区二区在线观看不卡| 国产精品久久久久久久久免费桃花| 91麻豆国产自产在线观看| 午夜欧美电影在线观看| 精品sm在线观看| 色综合久久久久久久久久久| 免费人成在线不卡| 欧美国产在线观看|