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

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

?? core.h

?? Last Update: Jan 22 2009 可靠UDP傳輸, 一套高效的基于windows平臺的C++ 開發庫
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************Copyright (c) 2001 - 2009, The Board of Trustees of the University of Illinois.All rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions aremet:* 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 "ASIS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ORCONTRIBUTORS 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, ORPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*****************************************************************************//*****************************************************************************written by   Yunhong Gu, last updated 01/15/2009*****************************************************************************/#ifndef __UDT_CORE_H__#define __UDT_CORE_H__#include "udt.h"#include "common.h"#include "list.h"#include "buffer.h"#include "window.h"#include "packet.h"#include "channel.h"#include "api.h"#include "ccc.h"#include "co-op.h"#include "queue.h"enum UDTSockType {UDT_STREAM = 1, UDT_DGRAM};class CUDT{friend struct CUDTSocket;friend class CUDTUnited;friend class CCC;friend struct CUDTComp;friend class CControl;friend class CSndQueue;friend class CRcvQueue;friend class CSndUList;friend class CRcvUList;private: // constructor and desctructor   CUDT();   CUDT(const CUDT& ancestor);   const CUDT& operator=(const CUDT&) {return *this;}   ~CUDT();public: //API   static int startup();   static int cleanup();   static UDTSOCKET socket(int af, int type = SOCK_STREAM, int protocol = 0);   static int bind(UDTSOCKET u, const sockaddr* name, int namelen);   static int bind(UDTSOCKET u, UDPSOCKET udpsock);   static int listen(UDTSOCKET u, int backlog);   static UDTSOCKET accept(UDTSOCKET u, sockaddr* addr, int* addrlen);   static int connect(UDTSOCKET u, const sockaddr* name, int namelen);   static int close(UDTSOCKET u);   static int getpeername(UDTSOCKET u, sockaddr* name, int* namelen);   static int getsockname(UDTSOCKET u, sockaddr* name, int* namelen);   static int getsockopt(UDTSOCKET u, int level, UDTOpt optname, void* optval, int* optlen);   static int setsockopt(UDTSOCKET u, int level, UDTOpt optname, const void* optval, int optlen);   static int send(UDTSOCKET u, const char* buf, int len, int flags);   static int recv(UDTSOCKET u, char* buf, int len, int flags);   static int sendmsg(UDTSOCKET u, const char* buf, int len, int ttl = -1, bool inorder = false);   static int recvmsg(UDTSOCKET u, char* buf, int len);   static int64_t sendfile(UDTSOCKET u, std::ifstream& ifs, const int64_t& offset, const int64_t& size, const int& block = 364000);   static int64_t recvfile(UDTSOCKET u, std::ofstream& ofs, const int64_t& offset, const int64_t& size, const int& block = 7280000);   static int select(int nfds, ud_set* readfds, ud_set* writefds, ud_set* exceptfds, const timeval* timeout);   static CUDTException& getlasterror();   static int perfmon(UDTSOCKET u, CPerfMon* perf, bool clear = true);public: // internal API   static CUDT* getUDTHandle(UDTSOCKET u);private:      // Functionality:      //    initialize a UDT entity and bind to a local address.      // Parameters:      //    None.      // Returned value:      //    None.   void open();      // Functionality:      //    Start listening to any connection request.      // Parameters:      //    None.      // Returned value:      //    None.   void listen();      // Functionality:      //    Connect to a UDT entity listening at address "peer".      // Parameters:      //    0) [in] peer: The address of the listening UDT entity.      // Returned value:      //    None.   void connect(const sockaddr* peer);      // Functionality:      //    Connect to a UDT entity listening at address "peer", which has sent "hs" request.      // Parameters:      //    0) [in] peer: The address of the listening UDT entity.      //    1) [in/out] hs: The handshake information sent by the peer side (in), negotiated value (out).      // Returned value:      //    None.   void connect(const sockaddr* peer, CHandShake* hs);      // Functionality:      //    Close the opened UDT entity.      // Parameters:      //    None.      // Returned value:      //    None.   void close();      // Functionality:      //    Request UDT to send out a data block "data" with size of "len".      // Parameters:      //    0) [in] data: The address of the application data to be sent.      //    1) [in] len: The size of the data block.      // Returned value:      //    Actual size of data sent.   int send(const char* data, const int& len);      // Functionality:      //    Request UDT to receive data to a memory block "data" with size of "len".      // Parameters:      //    0) [out] data: data received.      //    1) [in] len: The desired size of data to be received.      // Returned value:      //    Actual size of data received.   int recv(char* data, const int& len);      // Functionality:      //    send a message of a memory block "data" with size of "len".      // Parameters:      //    0) [out] data: data received.      //    1) [in] len: The desired size of data to be received.      //    2) [in] ttl: the time-to-live of the message.      //    3) [in] inorder: if the message should be delivered in order.      // Returned value:      //    Actual size of data sent.   int sendmsg(const char* data, const int& len, const int& ttl, const bool& inorder);      // Functionality:      //    Receive a message to buffer "data".      // Parameters:      //    0) [out] data: data received.      //    1) [in] len: size of the buffer.      // Returned value:      //    Actual size of data received.   int recvmsg(char* data, const int& len);      // Functionality:      //    Request UDT to send out a file described as "fd", starting from "offset", with size of "size".      // Parameters:      //    0) [in] ifs: The input file stream.      //    1) [in] offset: From where to read and send data;      //    2) [in] size: How many data to be sent.      //    3) [in] block: size of block per read from disk      // Returned value:      //    Actual size of data sent.   int64_t sendfile(std::ifstream& ifs, const int64_t& offset, const int64_t& size, const int& block = 366000);      // Functionality:      //    Request UDT to receive data into a file described as "fd", starting from "offset", with expected size of "size".      // Parameters:      //    0) [out] ofs: The output file stream.      //    1) [in] offset: From where to write data;      //    2) [in] size: How many data to be received.      //    3) [in] block: size of block per write to disk

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱子久久久久| 1区2区3区国产精品| 精品入口麻豆88视频| 国产一区在线视频| 欧美精品一区二| 日韩制服丝袜先锋影音| 99久久精品免费| 欧美日韩你懂的| 国产99久久久国产精品潘金 | 亚洲永久免费视频| 精品中文字幕一区二区小辣椒| 国产精品一区二区在线看| 精品福利一区二区三区| 久久综合久久鬼色中文字| 亚洲欧美国产高清| 精品国产91洋老外米糕| 色av一区二区| 欧美影片第一页| 欧美日韩1区2区| 国产精品福利一区| 经典三级一区二区| av成人免费在线观看| 欧美无乱码久久久免费午夜一区| 精品国产乱码久久久久久免费 | 日韩欧美一区二区三区在线| 在线观看成人小视频| 在线亚洲欧美专区二区| 亚洲综合免费观看高清完整版在线 | 欧美激情综合五月色丁香| 亚洲日本乱码在线观看| 国产精品888| 久久久天堂av| 韩国精品免费视频| 国产亚洲精品aa午夜观看| 国产综合久久久久影院| 精品福利在线导航| 国产福利精品一区二区| 国产日产欧美一区| 国产福利精品一区| 中文字幕中文字幕一区二区 | 成人黄色国产精品网站大全在线免费观看 | 国产网站一区二区| 国产成人av一区二区三区在线观看| 久久综合精品国产一区二区三区| 久久99精品久久久久婷婷| 久久蜜桃香蕉精品一区二区三区| 国产主播一区二区三区| 中文字幕第一页久久| 成人精品高清在线| 一区二区免费视频| 欧美一级夜夜爽| 极品少妇xxxx精品少妇| 国产亚洲人成网站| 成人99免费视频| 亚洲二区在线观看| 日韩欧美一区二区免费| 盗摄精品av一区二区三区| 亚洲黄色免费网站| 日韩欧美亚洲另类制服综合在线| 国产精品夜夜嗨| 亚洲精品欧美激情| 日韩精品一区二区三区三区免费| 国产麻豆一精品一av一免费| ●精品国产综合乱码久久久久| 欧美专区日韩专区| 久久国产福利国产秒拍| 国产精品久久久久久久久图文区| 欧美吻胸吃奶大尺度电影 | 日韩免费成人网| 成人久久久精品乱码一区二区三区 | 国产亚洲短视频| 色哦色哦哦色天天综合| 乱一区二区av| 亚洲青青青在线视频| 欧美电影免费观看高清完整版在线| 波多野结衣视频一区| 人人狠狠综合久久亚洲| 国产日韩亚洲欧美综合| 欧美美女网站色| 9人人澡人人爽人人精品| 美女在线观看视频一区二区| 最近日韩中文字幕| 欧美大片国产精品| 在线观看日韩电影| 成人中文字幕合集| 蜜臀久久99精品久久久久久9| 国产精品免费网站在线观看| 欧美高清视频一二三区| 91片在线免费观看| 国产乱人伦偷精品视频免下载| 亚洲高清免费观看| 亚洲视频免费看| 精品国产伦理网| 欧美高清性hdvideosex| 色94色欧美sute亚洲线路一久| 国产suv精品一区二区三区| 日本女优在线视频一区二区| 亚洲在线免费播放| 亚洲欧美乱综合| 国产精品国产三级国产有无不卡| 精品国产91久久久久久久妲己| 欧美日韩国产精品自在自线| 91麻豆福利精品推荐| 成人app网站| 岛国精品在线观看| 国产suv精品一区二区三区| 精品一区中文字幕| 久久99精品国产.久久久久| 首页国产丝袜综合| 亚洲成人av一区| 亚洲国产乱码最新视频| 亚洲一区二区不卡免费| 亚洲一区二区三区四区不卡| 一区二区高清在线| 亚洲午夜日本在线观看| 亚洲一区在线视频观看| 亚洲国产一区在线观看| 亚洲图片自拍偷拍| 日韩电影网1区2区| 日韩av成人高清| 精品在线免费观看| 国产毛片一区二区| 成人app下载| 日本道在线观看一区二区| 色婷婷av一区| 欧美精品乱码久久久久久| 欧美日韩国产a| 日韩区在线观看| 国产亚洲欧美一区在线观看| 国产日韩欧美精品综合| 自拍视频在线观看一区二区| 亚洲另类在线制服丝袜| 亚洲成人午夜影院| 久久99精品久久久久| 国产不卡免费视频| 91老司机福利 在线| 欧美精品一级二级| 精品福利一区二区三区| 国产精品成人免费在线| 亚洲裸体xxx| 免费观看30秒视频久久| 国产成人精品免费一区二区| 一本一本久久a久久精品综合麻豆| 欧美日韩一区中文字幕| wwww国产精品欧美| 亚洲欧美一区二区三区久本道91| 亚洲午夜精品17c| 国产一区二区精品在线观看| 91一区二区三区在线播放| 在线成人小视频| 国产欧美日韩三级| 天天色天天操综合| 国产成人av一区| 欧美另类videos死尸| 久久久www成人免费毛片麻豆| 亚洲欧美日韩国产综合| 蜜桃av噜噜一区二区三区小说| 成人一区二区三区视频在线观看 | 久久久久久久久免费| 亚洲美女视频一区| 国产剧情一区在线| 欧美日韩国产首页在线观看| 亚洲国产经典视频| 青青草精品视频| 色婷婷亚洲一区二区三区| 欧美精品一区二区三区视频| 亚洲一卡二卡三卡四卡无卡久久| 国产一区二区三区四区五区入口| 在线免费一区三区| 国产视频不卡一区| 男男gaygay亚洲| 91福利社在线观看| 国产调教视频一区| 免费成人在线影院| 欧美日韩一区二区三区在线| 国产精品久久午夜| 韩国成人福利片在线播放| 欧美午夜片在线观看| 中文字幕亚洲不卡| 国产精品自产自拍| 精品国偷自产国产一区| 日本中文在线一区| 欧美午夜视频网站| 一区二区日韩av| 色婷婷国产精品久久包臀| 中文字幕制服丝袜成人av| 国产一区二区三区香蕉| 日韩欧美一区电影| 日本麻豆一区二区三区视频| 在线一区二区视频| 一区二区三区蜜桃| 91一区在线观看| 亚洲乱码国产乱码精品精的特点 | 亚洲女与黑人做爰| av成人免费在线观看| 国产精品每日更新| 国产69精品久久99不卡| 亚洲国产精品传媒在线观看| 国产99久久久久久免费看农村| 亚洲精品一线二线三线|