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

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

?? udt.pas

?? DELPHI 封裝的UDT類庫..可以在DELPHI使用開源的UDT類庫.
?? PAS
字號:
{*****************************************************************************
Copyright (c) 2001 - 2007, The Board of Trustees of the University of Illinois.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above
  copyright notice, this list of conditions and the
  following disclaimer.

* Redistributions in binary form must reproduce the
  above copyright notice, this list of conditions
  and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the University of Illinois
  nor the names of its contributors may be used to
  endorse or promote products derived from this
  software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************}

{*****************************************************************************
written by
   Yunhong Gu, last updated 12/02/2007
translated by
   Zhengcheng Zhang, last updated 10/10/2008
*****************************************************************************}

Unit udt;

Interface

{$INCLUDE mcompile.inc}

 Uses
  SysUtils, Classes,
  {$IFDEF DELPHI}
  Windows, Winsock, JwaWinsock2, JwaWS2tcpip,
  {$ENDIF}
  {$IFDEF KYLIX}
  Libc,
  {$ENDIF}
  StrUtils
  ;

 Const
  ERROR = -1;
  INVALID_SOCK = -1;
  {$IFDEF DELPHI}
  UDTLIB = 'udt.dll';
  {$ENDIF}
  {$IFDEF KYLIX}
  UDTLIB = 'libudt.so';
  {$ENDIF}

 Type
  {$IFDEF KYLIX}
  pAddrInfo = pAddressInfo;
  {$ENDIF}
  UDTSOCKET = Integer;
  pInteger = ^Integer;
  pUDTSOCKET = ^UDTSOCKET;
  
  UDTOpt = (
   UDT_MSS,             // the Maximum Transfer Unit
   UDT_SNDSYN,          // if sending is blocking
   UDT_RCVSYN,          // if receiving is blocking
   UDT_CC,              // custom congestion control algorithm
   UDT_FC,		          // Flight flag size (window size)
   UDT_SNDBUF,          // maximum buffer in sending queue
   UDT_RCVBUF,          // UDT receiving buffer size
   UDT_LINGER,          // waiting for unsent data when closing
   UDP_SNDBUF,          // UDP sending buffer size
   UDP_RCVBUF,          // UDP receiving buffer size
   UDT_MAXMSG,          // maximum datagram message size
   UDT_MSGTTL,          // time-to-live of a datagram message
   UDT_RENDEZVOUS,      // rendezvous connection mode
   UDT_SNDTIMEO,        // send() timeout
   UDT_RCVTIMEO,        // recv() timeout
   UDT_REUSEADDR	      // reuse an existing port or create a new one
  );

  CPerfMon = Record
   // global measurements
   msTimeStamp: Int64;                 // time since the UDT entity is started, in milliseconds
   pktSentTotal: Int64;                // total number of sent data packets, including retransmissions
   pktRecvTotal: Int64;                // total number of received packets
   pktSndLossTotal: Integer;           // total number of lost packets (sender side)
   pktRcvLossTotal: Integer;           // total number of lost packets (receiver side)
   pktRetransTotal: Integer;           // total number of retransmitted packets
   pktSentACKTotal: Integer;           // total number of sent ACK packets
   pktRecvACKTotal: Integer;           // total number of received ACK packets
   pktSentNAKTotal: Integer;           // total number of sent NAK packets
   pktRecvNAKTotal: Integer;           // total number of received NAK packets

   // local measurements
   pktSent: Int64;                     // number of sent data packets, including retransmissions
   pktRecv: Int64;                     // number of received packets
   pktSndLoss: Integer;                      // number of lost packets (sender side)
   pktRcvLoss: Integer;                      // number of lost packets (receiverer side)
   pktRetrans: Integer;                      // number of retransmitted packets
   pktSentACK: Integer;                      // number of sent ACK packets
   pktRecvACK: Integer;                      // number of received ACK packets
   pktSentNAK: Integer;                      // number of sent NAK packets
   pktRecvNAK: Integer;                      // number of received NAK packets
   mbpsSendRate: Double;                 // sending rate in Mb/s
   mbpsRecvRate: Double;                 // receiving rate in Mb/s

   // instant measurements
   usPktSndPeriod: Double;               // packet sending period, in microseconds
   pktFlowWindow: Integer;                   // flow window size, in number of packets
   pktCongestionWindow: Integer;             // congestion window size, in number of packets
   pktFlightSize: Integer;                   // number of packets on flight
   msRTT: Double;                        // RTT, in milliseconds
   mbpsBandwidth: Double;                // estimated bandwidth, in Mb/s
   byteAvailSndBuf: Integer;                 // available UDT sender buffer size
   byteAvailRcvBuf: Integer;                 // available UDT receiver buffer size
  End;

  timeval = Record
   tv_sec: LongInt;
   tv_usec: LongInt;
  End;

 SOCKOPT = UDTOpt;
 TRACEINFO = CPerfMon;
 pTRACEINFO = ^TRACEINFO;
 pTimeVal = ^TimeVal;
 pUDSET = Pointer;

Function socket(af, type_, protocol: Integer): UDTSOCKET; Cdecl; External UDTLIB Name 'udt_socket';
Function bind(u: UDTSOCKET; Const name: pSockAddr; namelen: Integer): Integer; Cdecl; External UDTLIB Name 'udt_bind';
Function listen(u: UDTSOCKET; backlog: Integer): Integer; Cdecl; External UDTLIB Name 'udt_listen';
Function accept(u: UDTSOCKET; addr: pSockAddr; addrlen: pInteger): UDTSOCKET; Cdecl; External UDTLIB Name 'udt_accept';
Function connect(u: UDTSOCKET; Const name: pSockAddr; namelen: Integer): Integer; Cdecl; External UDTLIB Name 'udt_connect';
Function close(u: UDTSOCKET): Integer; Cdecl; External UDTLIB Name 'udt_close';
Function getpeername(u: UDTSOCKET; name: pSockAddr; namelen: pInteger): Integer; Cdecl; External UDTLIB Name 'udt_getpeername';
Function getsockname(u: UDTSOCKET; name: pSockAddr; namelen: pInteger): Integer; Cdecl; External UDTLIB Name 'udt_getsockname';
Function getsockopt(u: UDTSOCKET; level: Integer; optname: SOCKOPT; optval: Pointer; optlen: pInteger): Integer; Cdecl; External UDTLIB Name 'udt_getsockopt';
Function setsockopt(u: UDTSOCKET; level: Integer; optname: SOCKOPT; Const optval: Pointer; optlen: Integer): Integer; Cdecl; External UDTLIB Name 'udt_setsockopt';
Function send(u: UDTSOCKET; Const buf: pChar; len, flags: Integer): Integer; Cdecl; External UDTLIB Name 'udt_send';
Function recv(u: UDTSOCKET; buf: pChar; len, flags: Integer): Integer; Cdecl; External UDTLIB Name 'udt_recv';
Function sendmsg(u: UDTSOCKET; Const buf: pChar; len: Integer; ttl: Integer = -1; inorder: Boolean = false): Integer; Cdecl; External UDTLIB Name 'udt_sendmsg';
Function recvmsg(u: UDTSOCKET; buf: pChar; len: Integer): Integer; Cdecl; External UDTLIB Name 'udt_recvmsg';
Function perfmon(u: UDTSOCKET; perf: pTRACEINFO; clear: Boolean = True): Integer; Cdecl; External UDTLIB Name 'udt_perfmon';
Function getlasterror: pChar; Cdecl; External UDTLIB Name 'udt_getlasterror';
Function select(nfds: Integer; readfds, writefds, exceptfds: pUDSET; Const timeout: pTimeVal): Integer; Cdecl; External UDTLIB Name 'udt_select';
Function write_set(u: pUDTSOCKET; uslen: Integer): pUDSET; Cdecl; External UDTLIB;
Procedure read_set(u: pUDSET; us: pUDTSOCKET; uslen: pInteger); Cdecl; External UDTLIB;Procedure free_set(u: pUDSET); Cdecl; External UDTLIB;

Implementation

End.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品一区二区三区| 捆绑变态av一区二区三区| 亚洲成av人片在线观看| 国产乱码精品一区二区三 | 欧美激情中文字幕一区二区| 亚洲最色的网站| 国产高清不卡一区二区| 在线观看www91| 国产精品国产精品国产专区不蜜| 美国av一区二区| 欧美日韩亚洲综合在线| 中文字幕欧美一| 国产一区二区不卡老阿姨| 日韩一区二区免费视频| 亚洲一二三四区不卡| 成人动漫中文字幕| 精品国产1区二区| 丝袜美腿成人在线| 91看片淫黄大片一级| 国产欧美精品一区aⅴ影院| 免费观看91视频大全| 欧美日韩三级一区二区| 一区二区三区中文在线| 99精品视频在线观看| 日本一区二区三级电影在线观看| 蜜臀av性久久久久蜜臀av麻豆| 在线成人午夜影院| 亚洲成人在线免费| 欧美日韩国产一级片| 一区二区三国产精华液| 91久久久免费一区二区| 亚洲精选免费视频| 色综合久久综合网欧美综合网 | 精品国产亚洲一区二区三区在线观看| 亚洲图片欧美一区| 一本在线高清不卡dvd| 亚洲天堂福利av| 97精品久久久午夜一区二区三区| 国产精品久久久久一区二区三区共 | 精品中文字幕一区二区小辣椒| 欧美一区二区三级| 蜜臀久久99精品久久久久宅男| 69久久99精品久久久久婷婷| 免费高清不卡av| 欧美tickling挠脚心丨vk| 国产综合色精品一区二区三区| 欧美电视剧在线观看完整版| 国产一区二区三区久久悠悠色av| 久久一区二区三区国产精品| 成人亚洲一区二区一| 综合激情成人伊人| 欧美酷刑日本凌虐凌虐| 激情五月婷婷综合网| 久久夜色精品国产噜噜av| 福利一区二区在线观看| 亚洲另类在线一区| 91精品国产综合久久香蕉麻豆 | 视频在线观看一区| 日韩午夜小视频| 成人一区二区在线观看| 伊人色综合久久天天人手人婷| 欧美性极品少妇| 狠狠色丁香久久婷婷综合_中| 欧美极品aⅴ影院| 在线观看视频欧美| 韩国一区二区在线观看| 国产精品久线在线观看| 666欧美在线视频| 国产不卡视频在线观看| 亚洲国产成人高清精品| 久久精品免费在线观看| 91亚洲精品乱码久久久久久蜜桃| 婷婷综合久久一区二区三区| 中文字幕av在线一区二区三区| 欧美在线观看18| 欧美日韩一级二级三级| 国产一区二区三区av电影| 亚洲精品五月天| 久久免费视频色| 欧美日韩精品一区二区三区蜜桃 | 国产视频亚洲色图| 欧美色中文字幕| 成人免费av在线| 欧美伊人久久久久久午夜久久久久| 亚洲成人一区二区在线观看| 国产精品丝袜91| 精品裸体舞一区二区三区| 色系网站成人免费| 高清beeg欧美| 国内外成人在线| 三级久久三级久久久| 欧美国产激情二区三区| 欧美成人午夜电影| 欧美精三区欧美精三区| 91激情在线视频| av中文字幕不卡| 国产精品自产自拍| 奇米色一区二区| 亚洲成人资源网| 亚洲精品免费视频| 亚洲青青青在线视频| 欧美韩国日本不卡| 久久蜜桃av一区二区天堂| 日韩精品一区在线观看| 日韩一区二区三区电影在线观看| 99国产精品一区| 99re免费视频精品全部| 成人开心网精品视频| 国产精品77777竹菊影视小说| 麻豆成人综合网| 秋霞av亚洲一区二区三| 日韩精品亚洲专区| 午夜欧美2019年伦理| 亚洲在线免费播放| 一区二区三区不卡在线观看| 亚洲人妖av一区二区| 136国产福利精品导航| 日韩一区中文字幕| 亚洲欧洲日产国产综合网| 日韩一区欧美小说| 亚洲精品国产无天堂网2021 | 中文字幕精品三区| 国产色综合久久| 中文无字幕一区二区三区| 久久久精品2019中文字幕之3| 久久久久久免费网| 国产精品久久影院| 樱花草国产18久久久久| 天天操天天色综合| 老司机午夜精品| 国产成人亚洲综合色影视| 成人伦理片在线| 精品污污网站免费看| 日韩午夜激情免费电影| 久久久综合激的五月天| 中文字幕一区二区三区四区| 亚洲品质自拍视频| 日本成人在线不卡视频| 国产一区二区三区四区五区入口 | 精品视频在线免费看| 日韩你懂的在线播放| 国产偷v国产偷v亚洲高清| 综合av第一页| 亚洲大片精品永久免费| 国产一区二区三区四区五区入口| 99riav久久精品riav| 欧美精品v国产精品v日韩精品| 日韩三级av在线播放| 中文在线一区二区| 亚洲高清在线视频| 国产伦精一区二区三区| 91成人免费网站| 日韩视频中午一区| 最新日韩av在线| 老汉av免费一区二区三区| 成人免费视频一区| 欧美一级理论片| 专区另类欧美日韩| 麻豆91在线看| 日本韩国欧美国产| 久久久综合网站| 亚洲成av人片在线| 91在线精品一区二区| 日韩一区二区中文字幕| 亚洲欧美一区二区三区国产精品| 蜜臀av一区二区在线观看| 91在线播放网址| 精品不卡在线视频| 五月婷婷综合激情| 99久久精品国产观看| 精品国精品国产| 午夜精品爽啪视频| 99久久久久久| 国产亚洲精品7777| 日产欧产美韩系列久久99| 91麻豆精品在线观看| 国产亚洲精品超碰| 美女视频黄a大片欧美| 欧美视频在线一区二区三区| 国产精品丝袜久久久久久app| 激情综合一区二区三区| 91.xcao| 一区二区激情视频| 99riav一区二区三区| 国产欧美日韩另类一区| 国产精品一二三四区| 精品国产亚洲一区二区三区在线观看| 亚洲一区二区在线免费观看视频| 国产成人在线网站| 精品国产91乱码一区二区三区| 日韩av高清在线观看| 欧美日韩国产另类不卡| 亚洲一区二区在线观看视频 | 亚洲激情第一区| 日韩欧美精品三级| 婷婷一区二区三区| 717成人午夜免费福利电影| 午夜久久久影院| 在线电影国产精品| 麻豆91在线观看|