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

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

?? api.h

?? Last Update: Jan 22 2009 可靠UDP傳輸, 一套高效的基于windows平臺的C++ 開發庫
?? H
字號:
/*****************************************************************************Copyright (c) 2001 - 2008, 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 12/04/2008*****************************************************************************/#ifndef __UDT_API_H__#define __UDT_API_H__#include <map>#include <vector>#include "udt.h"#include "packet.h"#include "queue.h"#include "co-op.h"class CUDT;struct CUDTSocket{   CUDTSocket();   ~CUDTSocket();   enum UDTSTATUS {INIT = 1, OPENED, LISTENING, CONNECTED, BROKEN, CLOSED};   UDTSTATUS m_Status;                       // current socket state   uint64_t m_TimeStamp;                     // time when the socket is closed   int m_iIPversion;                         // IP version   sockaddr* m_pSelfAddr;                    // pointer to the local address of the socket   sockaddr* m_pPeerAddr;                    // pointer to the peer address of the socket   UDTSOCKET m_SocketID;                     // socket ID   UDTSOCKET m_ListenSocket;                 // ID of the listener socket; 0 means this is an independent socket   UDTSOCKET m_PeerID;                       // peer socket ID   int32_t m_iISN;                           // initial sequence number, used to tell different connection from same IP:port   CUDT* m_pUDT;                             // pointer to the UDT entity   std::set<UDTSOCKET>* m_pQueuedSockets;    // set of connections waiting for accept()   std::set<UDTSOCKET>* m_pAcceptSockets;    // set of accept()ed connections   pthread_cond_t m_AcceptCond;              // used to block "accept" call   pthread_mutex_t m_AcceptLock;             // mutex associated to m_AcceptCond   unsigned int m_uiBackLog;                 // maximum number of connections in queue};////////////////////////////////////////////////////////////////////////////////class CUDTUnited{friend class CUDT;public:   CUDTUnited();   ~CUDTUnited();public:      // Functionality:      //    initialize the UDT library.      // Parameters:      //    None.      // Returned value:      //    0 if success, otherwise -1 is returned.   int startup();      // Functionality:      //    release the UDT library.      // Parameters:      //    None.      // Returned value:      //    0 if success, otherwise -1 is returned.   int cleanup();      // Functionality:      //    Create a new UDT socket.      // Parameters:      //    0) [in] af: IP version, IPv4 (AF_INET) or IPv6 (AF_INET6).      //    1) [in] type: socket type, SOCK_STREAM or SOCK_DGRAM      // Returned value:      //    The new UDT socket ID, or INVALID_SOCK.   UDTSOCKET newSocket(const int& af, const int& type);      // Functionality:      //    Create a new UDT connection.      // Parameters:      //    0) [in] listen: the listening UDT socket;      //    1) [in] peer: peer address.      //    2) [in/out] hs: handshake information from peer side (in), negotiated value (out);      // Returned value:      //    If the new connection is successfully created: 1 success, 0 already exist, -1 error.   int newConnection(const UDTSOCKET listen, const sockaddr* peer, CHandShake* hs);      // Functionality:      //    look up the UDT entity according to its ID.      // Parameters:      //    0) [in] u: the UDT socket ID.      // Returned value:      //    Pointer to the UDT entity.   CUDT* lookup(const UDTSOCKET u);      // Functionality:      //    Check the status of the UDT socket.      // Parameters:      //    0) [in] u: the UDT socket ID.      // Returned value:      //    UDT socket status, or INIT if not found.   CUDTSocket::UDTSTATUS getStatus(const UDTSOCKET u);      // socket APIs   int bind(const UDTSOCKET u, const sockaddr* name, const int& namelen);   int bind(const UDTSOCKET u, UDPSOCKET udpsock);   int listen(const UDTSOCKET u, const int& backlog);   UDTSOCKET accept(const UDTSOCKET listen, sockaddr* addr, int* addrlen);   int connect(const UDTSOCKET u, const sockaddr* name, const int& namelen);   int close(const UDTSOCKET u);   int getpeername(const UDTSOCKET u, sockaddr* name, int* namelen);   int getsockname(const UDTSOCKET u, sockaddr* name, int* namelen);   int select(ud_set* readfds, ud_set* writefds, ud_set* exceptfds, const timeval* timeout);      // Functionality:      //    record the UDT exception.      // Parameters:      //    0) [in] e: pointer to a UDT exception instance.      // Returned value:      //    None.   void setError(CUDTException* e);      // Functionality:      //    look up the most recent UDT exception.      // Parameters:      //    None.      // Returned value:      //    pointer to a UDT exception instance.   CUDTException* getError();private:   std::map<UDTSOCKET, CUDTSocket*> m_Sockets;       // stores all the socket structures   pthread_mutex_t m_ControlLock;                    // used to synchronize UDT API   pthread_mutex_t m_IDLock;                         // used to synchronize ID generation   UDTSOCKET m_SocketID;                             // seed to generate a new unique socket IDprivate:   pthread_key_t m_TLSError;                         // thread local error record (last error)   #ifndef WIN32      static void TLSDestroy(void* e) {if (NULL != e) delete (CUDTException*)e;}   #else      std::map<DWORD, CUDTException*> m_mTLSRecord;      void checkTLSValue();      pthread_mutex_t m_TLSLock;   #endifprivate:   CUDTSocket* locate(const UDTSOCKET u);   CUDTSocket* locate(const UDTSOCKET u, const sockaddr* peer, const UDTSOCKET& id, const int32_t& isn);   void updateMux(CUDT* u, const sockaddr* addr = NULL, const UDPSOCKET* = NULL);   void updateMux(CUDT* u, const CUDTSocket* ls);private:   std::vector<CMultiplexer> m_vMultiplexer;		// UDP multiplexer   pthread_mutex_t m_MultiplexerLock;private:   CControl* m_pController;				// UDT congestion control managerprivate:   volatile bool m_bClosing;   pthread_mutex_t m_GCStopLock;   pthread_cond_t m_GCStopCond;   pthread_mutex_t m_InitLock;   bool m_bGCStatus;					// if the GC thread is working (true)   pthread_t m_GCThread;   #ifndef WIN32      static void* garbageCollect(void*);   #else      static DWORD WINAPI garbageCollect(LPVOID);   #endif   std::map<UDTSOCKET, CUDTSocket*> m_ClosedSockets;   // temporarily store closed sockets   void checkBrokenSockets();   void removeSocket(const UDTSOCKET u);};#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩另类一区| 亚洲高清在线精品| 高清不卡一区二区| 国产视频在线观看一区二区三区 | 国产亚洲欧洲一区高清在线观看| 久久91精品久久久久久秒播| 国产女人18毛片水真多成人如厕 | 国产精品每日更新| 91日韩一区二区三区| 亚洲高清三级视频| 日韩视频一区在线观看| 国产麻豆视频精品| 亚洲女厕所小便bbb| 在线播放日韩导航| 国产精品一区二区果冻传媒| 亚洲欧洲中文日韩久久av乱码| 欧美精品在线视频| 国产盗摄视频一区二区三区| 亚洲欧美日韩精品久久久久| 这里只有精品99re| 懂色av一区二区三区蜜臀| 一区二区三区高清| 欧美精品一区二区蜜臀亚洲| 91蜜桃视频在线| 精彩视频一区二区三区| 亚洲欧美视频在线观看| 日韩免费电影一区| 91麻豆精品秘密| 美女视频一区在线观看| 综合av第一页| 欧美v国产在线一区二区三区| 色哟哟在线观看一区二区三区| 久久99久久99精品免视看婷婷 | 蜜臀av国产精品久久久久| 椎名由奈av一区二区三区| 欧美成人艳星乳罩| 色成年激情久久综合| 国产精品一区二区视频| 日韩精品1区2区3区| 亚洲品质自拍视频| 国产日本欧美一区二区| 日韩三级电影网址| 在线观看网站黄不卡| 国产成人精品亚洲午夜麻豆| 日韩激情视频在线观看| 一区二区三区不卡视频| 中文字幕一区二区在线播放| 日韩欧美亚洲另类制服综合在线| 91网页版在线| 丁香婷婷综合色啪| 国产一区二区精品久久91| 秋霞午夜鲁丝一区二区老狼| 亚洲一区二区三区美女| 亚洲美女偷拍久久| 国产精品高清亚洲| 中文字幕精品综合| 国产日韩av一区| 欧美视频一区二区| 久久久久久免费| 91精品国产免费久久综合| 色天使色偷偷av一区二区| 大胆亚洲人体视频| 国产专区欧美精品| 久久精品国产一区二区三| 婷婷中文字幕综合| 午夜精品久久久久影视| 亚洲国产你懂的| 一区二区三区国产豹纹内裤在线| 亚洲少妇30p| ㊣最新国产の精品bt伙计久久| 国产欧美一区二区精品性色 | 日韩精品久久久久久| 亚洲午夜激情网页| 亚洲gay无套男同| 亚洲chinese男男1069| 午夜精品久久久久久久久久久| 亚洲一区二区在线观看视频| 亚洲大片精品永久免费| 亚洲国产精品麻豆| 欧美在线高清视频| 色av成人天堂桃色av| 国产99精品视频| 国产精品亚洲午夜一区二区三区| 韩国精品主播一区二区在线观看 | 中文字幕欧美区| 国产精品私人自拍| 综合欧美亚洲日本| 一区二区三区在线视频播放| 亚洲一区二区三区四区五区黄| 天堂成人国产精品一区| 日韩av网站免费在线| 久国产精品韩国三级视频| 久久不见久久见中文字幕免费| 国产在线精品视频| caoporen国产精品视频| 日本电影欧美片| 91精品国产综合久久久蜜臀粉嫩| 欧美一区二区私人影院日本| 精品国产一区二区三区忘忧草| 亚洲三级在线观看| 亚洲大片精品永久免费| 精品在线观看免费| 成人蜜臀av电影| 欧美性受xxxx黑人xyx性爽| 欧美年轻男男videosbes| 欧美v国产在线一区二区三区| 国产女人18毛片水真多成人如厕| 亚洲免费电影在线| 久久99久国产精品黄毛片色诱| 成人一区二区三区中文字幕| 在线观看一区二区视频| 精品久久久久久久久久久久久久久| 国产视频一区在线播放| 一区二区三区中文字幕电影| 日韩黄色片在线观看| 成人在线视频一区二区| 欧美日韩一区视频| 欧美极品少妇xxxxⅹ高跟鞋| 午夜日韩在线电影| 成人va在线观看| 日韩一区二区中文字幕| 亚洲色图在线播放| 国产一区二区三区久久久| 色综合天天综合网天天看片| 欧美大片一区二区| 亚洲一区二区三区激情| 夫妻av一区二区| 欧美一级一区二区| 国产精品久久久久久户外露出| 日韩av电影免费观看高清完整版在线观看| 福利91精品一区二区三区| 日韩一区二区三区免费看| 自拍视频在线观看一区二区| 国产一区二区0| 制服丝袜激情欧洲亚洲| 1024国产精品| 成人性视频网站| 日韩欧美视频在线| 亚洲制服丝袜av| k8久久久一区二区三区| 久久久精品tv| 美洲天堂一区二卡三卡四卡视频| 在线亚洲精品福利网址导航| 国产精品久久久久久久久免费丝袜| 免费观看久久久4p| 欧美日韩成人综合在线一区二区| 国产精品系列在线| 国产精品主播直播| 91精品国产高清一区二区三区蜜臀 | 欧美美女一区二区在线观看| 国产精品国产精品国产专区不片| 国产精一区二区三区| 欧美一区二区三区爱爱| 亚洲福利电影网| 在线影院国内精品| 一区二区三区免费看视频| a级高清视频欧美日韩| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品一区二区三区四区| 国产亚洲综合性久久久影院| 国产精品一品二品| 久久久亚洲欧洲日产国码αv| 激情都市一区二区| 久久综合色一综合色88| 久久99久久99| 久久久久久久电影| 国产精品一区二区免费不卡| 国产欧美日产一区| 91亚洲资源网| 有码一区二区三区| 欧美日韩高清影院| 麻豆精品久久久| 久久久99久久精品欧美| 东方aⅴ免费观看久久av| 专区另类欧美日韩| 欧美性xxxxx极品少妇| 舔着乳尖日韩一区| 欧美大片在线观看一区二区| 韩国精品久久久| 欧美经典一区二区| 一本高清dvd不卡在线观看| 亚洲国产欧美日韩另类综合| 欧美一区二区三区电影| 国产老女人精品毛片久久| 国产精品久久毛片a| 欧美在线|欧美| 久久91精品久久久久久秒播| 亚洲国产精品av| 欧洲一区二区三区免费视频| 蜜臀av国产精品久久久久| 国产欧美一区二区在线观看| 色婷婷综合久久久久中文| 日本成人在线视频网站| 精品国产成人系列| 99视频国产精品| 日韩高清不卡在线| 欧美韩国日本一区| 欧美视频一区二区| 国产精品系列在线播放| 一区二区成人在线观看|