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

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

?? socket.h

?? GNU Common C++ is a very portable and highly optimized class framework for writing C++ applications
?? H
?? 第 1 頁 / 共 4 頁
字號:
	 */	Error connect(const IPV4Broadcast &subnet, tpport_t port);	/**	 * Associate this socket with a multicast group.	 *	 * @return 0 on success, -1 on error.	 * @param mgroup address of the multicast group to send to.	 * @param port port number	 */	Error connect(const IPV4Multicast &mgroup, tpport_t port);#ifdef	CCXX_IPV6	Error connect(const IPV6Multicast &mgroup, tpport_t port);#endif	/**	 * Transmit "send" to use "connected" send rather than sendto.	 *	 * @return number of bytes sent.	 * @param buf address of buffer to send.	 * @param len of bytes to send.	 */	inline ssize_t send(const void *buf, size_t len)		{return _IORET64 ::send(so, (const char *)buf, _IOLEN64 len, 0);}	/**	 * Stop transmitter.	 */	inline void endTransmitter(void)		{Socket::endSocket();}	/*	 * Get transmitter socket.	 *	 * @return transmitter.	 */	inline SOCKET getTransmitter(void)		{return so;};	inline Error setMulticast(bool enable)		{return Socket::setMulticastByFamily(enable, family);}	inline Error setTimeToLive(unsigned char ttl)		{return Socket::setTimeToLiveByFamily(ttl, family);};public:	/**	 * Transmit "send" to use "connected" send rather than sendto.	 *	 * @note Windows does not support MSG_DONTWAIT, so it is defined	 *	 as 0 on that platform.	 * @return number of bytes sent.	 * @param buffer address of buffer to send.	 * @param len of bytes to send.	 */	inline ssize_t transmit(const char *buffer, size_t len)		{return _IORET64 ::send(so, buffer, _IOLEN64 len, MSG_DONTWAIT);}	/**	 * See if output queue is empty for sending more packets.	 *	 * @return true if output available.	 * @param timeout in milliseconds to wait.	 */	inline bool isOutputReady(unsigned long timeout = 0l)		{return Socket::isPending(Socket::pendingOutput, timeout);};	inline Error setRouting(bool enable)		{return Socket::setRouting(enable);};	inline Error setTypeOfService(Tos tos)		{return Socket::setTypeOfService(tos);};	inline Error setBroadcast(bool enable)		{return Socket::setBroadcast(enable);};};/** * Representing half of a two-way UDP connection, the UDP receiver * can receive data from another peer host or subnet.  This class is * used exclusivily to derive the UDPDuplex. * * @author David Sugar <dyfet@ostel.com> * @short Unreliable Datagram Peer Associations. */class __EXPORT UDPReceive : protected UDPSocket{protected:	/**	 * Create a UDP receiver, bind it to a specific interface	 * and port address so that other UDP sockets on remote	 * machines (or the same host) may find and send UDP messages	 * to it, and associate it with a given port on a peer host.         * On failure to bind, an exception is thrown.	 *	 * @param bind address to bind this socket to.	 * @param port number to bind this socket to.	 */	UDPReceive(const IPV4Address &bind, tpport_t port);#ifdef	CCXX_IPV6	UDPReceive(const IPV6Address &bind, tpport_t port);#endif	/**	 * Associate this socket with a specified peer host.  The port	 * number from the constructor will be used.  All UDP packets	 * will be sent received from the specified host.	 *	 * @return 0 on success, -1 on error.	 * @param host host network address to connect socket to.	 * @param port host transport port to connect socket to.	 */	Error connect(const IPV4Host &host, tpport_t port);#ifdef	CCXX_IPV6	Error connect(const IPV6Host &host, tpport_t port);#endif	/**	 * Check for pending data.	 *	 * @return true if data is waiting.	 * @param timeout in milliseconds.	 */	bool isPendingReceive(timeout_t timeout)		{return Socket::isPending(Socket::pendingInput, timeout);};	/**	 * End receiver.	 */	inline void endReceiver(void)		{Socket::endSocket();}	inline SOCKET getReceiver(void) const		{return so;};	inline Error setRouting(bool enable)		{return Socket::setRouting(enable);}	inline Error setMulticast(bool enable)		{return Socket::setMulticastByFamily(enable, family);}	inline Error join(const IPV4Multicast &ia)	        {return Socket::join(ia);}#ifdef	CCXX_IPV6	inline Error join(const IPV6Multicast &ia)		{return Socket::join(ia);}#endif	inline Error drop(const IPV4Multicast &ia)	        {return Socket::drop(ia);}#ifdef	CCXX_IPV6	inline Error drop(const IPV6Multicast &ia)		{return Socket::drop(ia);}#endifpublic:	/**	 * Receive a data packet from the connected peer host.	 *	 * @return num of bytes actually received.	 * @param buf address of data receive buffer.	 * @param len size of data receive buffer.	 */	inline ssize_t receive(void *buf, size_t len)		{return _IORET64 ::recv(so, (char *)buf, _IOLEN64 len, 0);};	/**	 * See if input queue has data packets available.	 *	 * @return true if data packets available.	 * @param timeout in milliseconds.	 */	inline bool isInputReady(timeout_t timeout = TIMEOUT_INF)		{return Socket::isPending(Socket::pendingInput, timeout);};};/** * UDP duplex connections impliment a bi-directional point-to-point UDP * session between two peer hosts.  Two UDP sockets are typically used * on alternating port addresses to assure that sender and receiver * data does not collide or echo back.  A UDP Duplex is commonly used * for full duplex real-time streaming of UDP data between hosts. * * @author David Sugar <dyfet@ostel.com> * @short Unreliable Datagram Peer Associations. */class __EXPORT UDPDuplex : public UDPTransmit, public UDPReceive{public:	/**	 * Create a UDP duplex as a pair of UDP simplex objects         * bound to alternating and interconnected port addresses.	 *	 * @param bind address to bind this socket to.	 * @param port number to bind sender.	 */	UDPDuplex(const IPV4Address &bind, tpport_t port);#ifdef	CCXX_IPV6	UDPDuplex(const IPV6Address &bind, tpport_t port);#endif	/**	 * Associate the duplex with a specified peer host. Both	 * the sender and receiver will be interconnected with	 * the remote host.	 *	 * @return 0 on success, error code on error.	 * @param host address to connect socket to.	 * @param port number to connect socket to.	 */	Error connect(const IPV4Host &host, tpport_t port);#ifdef	CCXX_IPV6	Error connect(const IPV6Host &host, tpport_t port);#endif	/**	 * Disassociate this duplex from any host connection.  No data	 * should be read or written until a connection is established.	 *	 * @return 0 on success, error code on error.	 */	Error disconnect(void);};/** * TCP sockets are used for stream based connected sessions between two * sockets.  Both error recovery and flow control operate transparently * for a TCP socket connection.  The TCP socket base class is primary used * to bind a TCP "server" for accepting TCP streams. *  * An implicit and unique TCPSocket object exists in Common C++ to represent * a bound TCP socket acting as a "server" for receiving connection requests. * This class is not part of TCPStream because such objects normally perform * no physical I/O (read or write operations) other than to specify a listen * backlog queue and perform "accept" operations for pending connections. * The Common C++ TCPSocket offers a Peek method to examine where the next * pending connection is coming from, and a Reject method to flush the next * request from the queue without having to create a session. *  * The TCPSocket also supports a "OnAccept" method which can be called when a * TCPStream related object is created from a TCPSocket.  By creating a * TCPStream from a TCPSocket, an accept operation automatically occurs, and * the TCPSocket can then still reject the client connection through the * return status of it's OnAccept method. *  * @author David Sugar <dyfet@tycho.com> * @short bound server for TCP streams and sessions. */class __EXPORT TCPSocket : protected Socket{protected:	int segsize;	void setSegmentSize(unsigned mss);public:	/**	 * A method to call in a derived TCPSocket class that is acting	 * as a server when a connection request is being accepted.  The	 * server can implement protocol specific rules to exclude the	 * remote socket from being accepted by returning false.  The	 * Peek method can also be used for this purpose.	 * 	 * @return true if client should be accepted.	 * @param ia internet host address of the client.	 * @param port number of the client.	 */	virtual bool onAccept(const IPV4Host &ia, tpport_t port);	/**	 * Fetch out the socket.	 */	inline SOCKET getSocket(void)		{return so;};	/**	 * Get the buffer size for servers.	 */	inline int getSegmentSize(void)		{return segsize;};	/**	 * A TCP "server" is created as a TCP socket that is bound	 * to a hardware address and port number on the local machine	 * and that has a backlog queue to listen for remote connection	 * requests.  If the server cannot be created, an exception is	 * thrown.	 * 	 * @param bind local ip address or interface to use.	 * @param port number to bind socket under.	 * @param backlog size of connection request queue.	 * @param mss maximum segment size for accepted streams.	 */	TCPSocket(const IPV4Address &bind, tpport_t port, unsigned backlog = 5, unsigned mss = 536);	/**	 * Create a named tcp socket by service and/or interface id.  	 * For IPV4 we use [host:]svc or [host/]svc for the string.	 * If we have getaddrinfo, we use that to obtain the addr to	 * bind for.	 *	 * @param name of host interface and service port to bind.	 * @param backlog size of connection request queue.	 * @param mss maximum segment size for streaming buffers.	 */	TCPSocket(const char *name, unsigned backlog = 5, unsigned mss = 536);		/**	 * Return address and port of next connection request.  This	 * can be used instead of OnAccept() to pre-evaluate connection	 * requests.	 *	 * @return host requesting a connection.	 * @param port number of requestor.	 */	inline IPV4Host getRequest(tpport_t *port = NULL) const		{return Socket::getIPV4Sender(port);}	/**	 * Used to reject the next incoming connection request.	 */	void reject(void);	/**	 * Used to get local bound address.	 */	inline IPV4Host getLocal(tpport_t *port = NULL) const		{return Socket::getIPV4Local(port);}	/**	 * Used to wait for pending connection requests.	 * @return true if data packets available.	 * @param timeout in milliseconds. TIMEOUT_INF if not specified.	 */	inline bool isPendingConnection(timeout_t timeout = TIMEOUT_INF) /* not const -- jfc */		{return Socket::isPending(Socket::pendingInput, timeout);}	/**	 * Use base socket handler for ending this socket.	 */	virtual ~TCPSocket();};#ifdef  CCXX_IPV6/** * TCPV6 sockets are used for stream based connected sessions between two * ipv6 sockets.  Both error recovery and flow control operate transparently * for a TCP socket connection.  The TCP socket base class is primary used * to bind a TCP "server" for accepting TCP streams. *  * An implicit and unique TCPV6Socket object exists in Common C++ to represent * a bound ipv6 TCP socket acting as a "server" for receiving connection requests. * This class is not part of TCPStream because such objects normally perform * no physical I/O (read or write operations) other than to specify a listen * backlog queue and perform "accept" operations for pending connections. * The Common C++ TCPV6Socket offers a Peek method to examine where the next * pending connection is coming from, and a Reject method to flush the next * request from the queue without having to create a session. *  * The TCPV6Socket also supports a "OnAccept" method which can be called when a * TCPStream related object is created from a TCPSocket.  By creating a * TCPStream from a TCPV6Socket, an accept operation automatically occurs, and * the TCPV6Socket can then still reject the client connection through the * return status of it's OnAccept method. *  * @author David Sugar <dyfet@tycho.com> * @short bound server for TCP streams and sessions. */class __EXPORT TCPV6Socket : protected Socket{private:	int segsize;	void setSegmentSize(unsigned mss);public:	/**	 * A method to call in a derived TCPSocket class that is acting	 * as a server when a connection request is being accepted.  The	 * server can implement protocol specific rules to exclude the	 * remote socket from being accepted by returning false.  The	 * Peek method can also be used for this purpose.	 * 	 * @return true if client should be accepted.	 * @param ia internet host address of the client.	 * @param port number of the client.	 */	virtual bool onAccept(const IPV6Host &ia, tpport_t port);	/**	 * Fetch out the socket.	 */	inline SOCKET getSocket(void)		{return so;};	inline int getSegmentSize(void)		{return segsize;};	/**	 * A TCP "server" is created as a TCP socket that is bound	 * to a hardware address and port number on the local machine	 * and that has a backlog queue to listen for remote connection	 * requests.  If the server cannot be created, an exception is	 * thrown.	 * 	 * @param bind local ip address or interface to use.	 * @param port number to bind socket under.	 * @param backlog size of connection request queue.	 * @param mss maximum segment size of streaming buffer.	 */	TCPV6Socket(const IPV6Address &bind, tpport_t port, unsigned backlog = 5, unsigned mss = 536);	/**	 * Create a TCP server for a named host interface and service	 * port.  We use [host/]port for specifying the optional host	 * name and service port since ':' is a valid char for ipv6	 * addresses.	 *	 * @param name of host interface and service to use.	 * @param backlog size of connection request queue.	 * @param mss maximum segment size of streaming buffers.	 */	TCPV6Socket(const char *name, unsigned backlog = 5, unsigned mss = 536);		/**	 * Return address and port of next connection request.  This	 * can be used instead of OnAccept() to pre-evaluate connection	 * requests.	 *	 * @return host requesting a connection.	 * @param port number of requestor.	 */	inline IPV6Host getRequest(tpport_t *port = NULL) const		{return Socket::getIPV6Sender(port);}	/**	 * Used to reject the next incoming connection request.	 */	void reject(void);	/**	 * Used to get local bound address.	 */	inline IPV6Host getLocal(tpport_t *port = NULL) const		{return Socket::getIPV6Local(port);}	/**	 * Used to wait for pending connection requests.	 * @return true if data packets available.	 * @param timeout in milliseconds. TIMEOUT_INF if not specified.	 */	inline bool isPendingConnection(timeout_t timeout = TIMEOUT_INF) /* not const -- jfc */		{return Socket::isPending(Socket::pendingInput, timeout);}	/**	 * Use base socket handler for ending this socket.	 */	virtual ~TCPV6Socket();};#endif/*:\projects\libraries\cplusplus\commonc++\win32\socket.h(357) : warning C4275: non dll-interface class 'streambuf' used as base for dll-interface class 'TCPStream'        c:\program files\microsoft visual studio\vc98\include\streamb.h(69) : see declaration of 'streambuf'c:\projects\libraries\cplusplus\commonc++\win32\socket.h(358) : warning C4275: non dll-interface class 'iostream' used as base for dll-interface class 'TCPStream'        c:\program files\microsoft visual studio\vc98\include\iostream.h(66) : see declaration of 'iostream'*/#ifdef _MSC_VER#pragma warning(disable:4275) // disable C4275 warning#endif/** * TCP streams are used to represent TCP client connections to a server * by TCP protocol servers for accepting client connections.  The TCP * stream is a C++ "stream" class, and can accept streaming of data to * and from other C++ objects using the << and >> operators. *  *  TCPStream itself can be formed either by connecting to a bound network *  address of a TCP server, or can be created when "accepting" a *  network connection from a TCP server. * * @author David Sugar <dyfet@ostel.com>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区二区完整视频在线观看| av激情综合网| 亚洲成人自拍一区| 亚洲欧洲三级电影| 亚洲三级电影网站| 亚洲日本护士毛茸茸| ...av二区三区久久精品| 日本一区二区三区国色天香| 国产欧美一区二区在线| 亚洲国产高清不卡| 中文字幕一区二区三区在线观看| 欧美激情中文字幕| 中文字幕一区二区三区蜜月| 国产精品盗摄一区二区三区| 一区二区三区四区不卡在线| 图片区日韩欧美亚洲| 欧美aaaaa成人免费观看视频| 琪琪久久久久日韩精品| 国产在线看一区| 99久久精品免费精品国产| 色综合久久久久久久久久久| 欧美色图在线观看| 日韩欧美国产精品| 国产日韩成人精品| 夜夜嗨av一区二区三区网页| 日韩和的一区二区| 国产老肥熟一区二区三区| 91丨porny丨户外露出| 欧美女孩性生活视频| 国产欧美精品一区aⅴ影院| 一级做a爱片久久| 国产在线一区二区综合免费视频| 99久久免费精品| 欧美高清激情brazzers| 久久久www成人免费无遮挡大片| 中文字幕制服丝袜一区二区三区| 亚洲第一主播视频| 国产精品1024久久| 欧美日韩在线播放一区| 国产亚洲一区二区三区| 亚洲电影一区二区三区| 国产福利一区二区| 欧美精品日韩综合在线| 国产精品久久久久久亚洲毛片 | 久久综合九色综合97婷婷女人 | 精品日韩在线观看| 亚洲天堂免费看| 国产伦精品一区二区三区在线观看 | 成人黄色在线视频| 欧美日韩精品欧美日韩精品一 | 欧美视频在线观看一区二区| 久久色在线观看| 日韩精品五月天| 欧美性xxxxxxxx| 国产精品热久久久久夜色精品三区| 日韩精品亚洲一区二区三区免费| 色综合久久久久综合| 欧美国产日本韩| 国内成+人亚洲+欧美+综合在线| 欧美日本韩国一区| 亚洲精品乱码久久久久久黑人| 国产精品一区在线观看你懂的| 日韩欧美一级精品久久| 婷婷丁香激情综合| 欧美精品777| 午夜精品福利久久久| 欧美日韩一区三区| 一二三区精品视频| 欧美午夜精品一区| 亚洲成人在线网站| 在线观看视频一区| 一区二区三区四区av| 色婷婷综合久久久久中文 | 色综合天天做天天爱| 国产精品久久福利| 国产成人av资源| 亚洲国产精品av| 不卡在线视频中文字幕| 中文字幕中文字幕一区| 91在线国产福利| 一区二区三区中文字幕电影| 91国产福利在线| 亚洲影视资源网| 欧美久久一二三四区| 婷婷激情综合网| 日韩精品最新网址| 国产一区欧美二区| 中文字幕视频一区二区三区久| 不卡视频在线观看| 一区二区三区久久| 欧美一区在线视频| 国产一区二区三区国产| 视频一区二区中文字幕| 91精品国产日韩91久久久久久| 奇米色777欧美一区二区| 欧美精品一区二区精品网| 激情久久久久久久久久久久久久久久| 26uuu精品一区二区三区四区在线| 国产成人午夜电影网| 一区二区在线免费观看| 欧美一区二区三区成人| 国产suv精品一区二区三区| 亚洲乱码中文字幕| 欧美一区二区三区小说| 丁香六月久久综合狠狠色| 一区二区三区久久| 国产日韩欧美高清| 欧美日本一区二区| 国产精品99久久久久| 一区二区三区精品在线| 精品乱人伦小说| 91国偷自产一区二区使用方法| 麻豆精品精品国产自在97香蕉| 国产精品久久久久毛片软件| 91精品国产综合久久香蕉的特点| 从欧美一区二区三区| 亚洲成人一区二区| 国产农村妇女精品| 欧美一区二区三区人| 91国偷自产一区二区三区观看| 激情六月婷婷久久| 日韩精品亚洲一区二区三区免费| 国产精品拍天天在线| 欧美一区二区三区婷婷月色| 色婷婷激情久久| 国产成人综合网| 激情成人综合网| 免费欧美在线视频| 亚洲小少妇裸体bbw| 《视频一区视频二区| 久久亚洲欧美国产精品乐播| 欧美丰满嫩嫩电影| 91黄色激情网站| 91蝌蚪国产九色| 成人性生交大片免费看在线播放 | 亚洲女性喷水在线观看一区| 精品国产露脸精彩对白 | 国产自产高清不卡| 日本一不卡视频| 亚洲成人综合在线| 一区二区三区不卡视频| 中文字幕欧美一| 欧美国产一区二区| 欧美激情一区二区三区四区| 精品国产91久久久久久久妲己| 欧美巨大另类极品videosbest| 欧美日韩一区二区在线观看| 色婷婷综合激情| 99久久99久久精品国产片果冻| 成人午夜电影网站| 国产98色在线|日韩| 国产成人av影院| 国产成人8x视频一区二区 | 中文字幕色av一区二区三区| 久久久精品欧美丰满| 久久久无码精品亚洲日韩按摩| 欧美成人vps| 久久久久久夜精品精品免费| 久久影视一区二区| 精品日韩成人av| 久久精品人人做| 国产精品久久午夜| 亚洲欧美日韩电影| 婷婷成人综合网| 久久99国产精品久久| 国产成人在线视频网址| 激情综合色综合久久| 丰满少妇在线播放bd日韩电影| 国产成人在线观看| 99久久夜色精品国产网站| 在线精品视频一区二区| 欧美夫妻性生活| 久久久久久久综合| 国产精品久久久久久久久免费桃花 | 久久99久国产精品黄毛片色诱| 捆绑紧缚一区二区三区视频| 国内精品国产三级国产a久久| 成人av电影在线播放| 欧美亚洲动漫另类| 亚洲精品一线二线三线无人区| 国产欧美1区2区3区| 亚洲精选一二三| 久久精品久久久精品美女| 成人精品gif动图一区| 欧美亚洲愉拍一区二区| 欧美精品一区二区高清在线观看| 中文字幕的久久| 日韩国产在线一| 波波电影院一区二区三区| 欧美人成免费网站| 国产欧美一区二区在线观看| 亚洲五码中文字幕| 成人综合婷婷国产精品久久蜜臀| 欧美亚一区二区| 国产精品网站一区| 日韩精品国产欧美| 成a人片亚洲日本久久| 日韩一区二区三区在线| 亚洲欧美在线高清| 国产精品一区二区你懂的|