⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winsock2.h

📁 手机windows mobile平台的rtsp实现,仅包含rtsp部分的实现.
💻 H
📖 第 1 页 / 共 3 页
字号:
/*  Definitions for winsock 2  Initially taken from the Wine project.    Portions Copyright (c) 1980, 1983, 1988, 1993  The Regents of the University of California.  All rights reserved.  Portions Copyright (c) 1993 by Digital Equipment Corporation. */#if !(defined _WINSOCK2_H || defined _WINSOCK_H)#define _WINSOCK2_H#define _WINSOCK_H /* to prevent later inclusion of winsock.h */#if __GNUC__ >=3#pragma GCC system_header#endif#define _GNU_H_WINDOWS32_SOCKETS#include <windows.h>#ifdef __cplusplusextern "C" {#endif/*   Names common to Winsock1.1 and Winsock2  */#if !defined ( _BSDTYPES_DEFINED )/* also defined in gmon.h and in cygwin's sys/types */typedef unsigned char	u_char;typedef unsigned short	u_short;typedef unsigned int	u_int;typedef unsigned long	u_long;#define _BSDTYPES_DEFINED#endif /* ! def _BSDTYPES_DEFINED  */typedef u_int	SOCKET;#ifndef FD_SETSIZE#define FD_SETSIZE	64#endif/* shutdown() how types */#define SD_RECEIVE      0x00#define SD_SEND         0x01#define SD_BOTH         0x02#ifndef _SYS_TYPES_FD_SET/* fd_set may be defined by the newlib <sys/types.h> * if __USE_W32_SOCKETS not defined.    */#ifdef fd_set#undef fd_set#endiftypedef struct fd_set {	u_int   fd_count;	SOCKET  fd_array[FD_SETSIZE];} fd_set;int PASCAL __WSAFDIsSet(SOCKET,fd_set*);#ifndef FD_CLR#define FD_CLR(fd,set) do { u_int __i;\for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\	if (((fd_set *)(set))->fd_array[__i] == (fd)) {\	while (__i < ((fd_set *)(set))->fd_count-1) {\		((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\		__i++;\	}\	((fd_set*)(set))->fd_count--;\	break;\	}\}\} while (0)#endif#ifndef FD_SET/* this differs from the define in winsock.h and in cygwin sys/types.h */#define FD_SET(fd, set) do { u_int __i;\for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\	if (((fd_set *)(set))->fd_array[__i] == (fd)) {\		break;\	}\}\if (__i == ((fd_set *)(set))->fd_count) {\	if (((fd_set *)(set))->fd_count < FD_SETSIZE) {\		((fd_set *)(set))->fd_array[__i] = (fd);\		((fd_set *)(set))->fd_count++;\	}\}\} while(0)#endif#ifndef FD_ZERO#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)#endif#ifndef FD_ISSET#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set))#endif#elif !defined (USE_SYS_TYPES_FD_SET)#warning "fd_set and associated macros have been defined in sys/types.  \    This may cause runtime problems with W32 sockets" #endif /* ndef _SYS_TYPES_FD_SET */#if !(defined (__INSIDE_CYGWIN__) || (__INSIDE_MSYS__))#ifndef _TIMEVAL_DEFINED /* also in sys/time.h */#define _TIMEVAL_DEFINEDstruct timeval {	long    tv_sec;	long    tv_usec;};#define timerisset(tvp)	 ((tvp)->tv_sec || (tvp)->tv_usec)#define timercmp(tvp, uvp, cmp) \	(((tvp)->tv_sec != (uvp)->tv_sec) ? \	((tvp)->tv_sec cmp (uvp)->tv_sec) : \	((tvp)->tv_usec cmp (uvp)->tv_usec))#define timerclear(tvp)	 (tvp)->tv_sec = (tvp)->tv_usec = 0#endif /* _TIMEVAL_DEFINED */struct  hostent {	char	*h_name;	char	**h_aliases;	short	h_addrtype;	short	h_length;	char	**h_addr_list;#define h_addr h_addr_list[0]};struct linger {	u_short l_onoff;	u_short l_linger;};#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */#define IOCPARM_MASK	0x7f#define IOC_VOID	0x20000000#define IOC_OUT	0x40000000#define IOC_IN	0x80000000#define IOC_INOUT	(IOC_IN|IOC_OUT)#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))#define _IO(x,y)	(IOC_VOID|((x)<<8)|(y))#define _IOR(x,y,t)	(IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))#define _IOW(x,y,t)	(IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))#define FIONBIO	_IOW('f', 126, u_long)#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */#define FIONREAD	_IOR('f', 127, u_long)#define FIOASYNC	_IOW('f', 125, u_long)#define SIOCSHIWAT	_IOW('s',  0, u_long)#define SIOCGHIWAT	_IOR('s',  1, u_long)#define SIOCSLOWAT	_IOW('s',  2, u_long)#define SIOCGLOWAT	_IOR('s',  3, u_long)#define SIOCATMARK	_IOR('s',  7, u_long)#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))struct netent {	char	* n_name;	char	**n_aliases;	short	n_addrtype;	u_long n_net;};struct  servent {	char	*s_name;	char	**s_aliases;	short	s_port;	char	*s_proto;};struct  protoent {	char	*p_name;	char	**p_aliases;	short	p_proto;};#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */#define IPPROTO_IP	0#define IPPROTO_ICMP 1#define IPPROTO_IGMP 2#define IPPROTO_GGP 3#define IPPROTO_TCP	6#define IPPROTO_PUP	12#define IPPROTO_UDP	17#define IPPROTO_IDP	22#define IPPROTO_ND	77#define IPPROTO_RAW	255#define IPPROTO_MAX	256/* IPv6 options */#define IPPROTO_HOPOPTS		0  /* IPv6 Hop-by-Hop options */#define IPPROTO_IPV6		41 /* IPv6 header */#define IPPROTO_ROUTING		43 /* IPv6 Routing header */#define IPPROTO_FRAGMENT	44 /* IPv6 fragmentation header */#define IPPROTO_ESP		50 /* encapsulating security payload */#define IPPROTO_AH		51 /* authentication header */#define IPPROTO_ICMPV6		58 /* ICMPv6 */#define IPPROTO_NONE		59 /* IPv6 no next header */#define IPPROTO_DSTOPTS		60 /* IPv6 Destination options */#define IPPORT_ECHO	7#define IPPORT_DISCARD	9#define IPPORT_SYSTAT	11#define IPPORT_DAYTIME  13#define IPPORT_NETSTAT  15#define IPPORT_FTP      21#define IPPORT_TELNET   23#define IPPORT_SMTP     25#define IPPORT_TIMESERVER 37#define IPPORT_NAMESERVER 42#define IPPORT_WHOIS	43#define IPPORT_MTP	57#define IPPORT_TFTP	69#define IPPORT_RJE	77#define IPPORT_FINGER	79#define IPPORT_TTYLINK	87#define IPPORT_SUPDUP	95#define IPPORT_EXECSERVER	512#define IPPORT_LOGINSERVER	513#define IPPORT_CMDSERVER	514#define IPPORT_EFSSERVER	520#define IPPORT_BIFFUDP	512#define IPPORT_WHOSERVER	513#define IPPORT_ROUTESERVER	520#define IPPORT_RESERVED	1024#define IMPLINK_IP	155#define IMPLINK_LOWEXPER	156#define IMPLINK_HIGHEXPER       158struct in_addr {	union {		struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;		struct { u_short s_w1,s_w2; } S_un_w;		u_long S_addr;	} S_un;#define s_addr  S_un.S_addr#define s_host  S_un.S_un_b.s_b2#define s_net   S_un.S_un_b.s_b1#define s_imp   S_un.S_un_w.s_w2#define s_impno S_un.S_un_b.s_b4#define s_lh    S_un.S_un_b.s_b3};#define IN_CLASSA(i)	((long)(i)&0x80000000)#define IN_CLASSA_NET	0xff000000#define IN_CLASSA_NSHIFT	24#define IN_CLASSA_HOST	0x00ffffff#define IN_CLASSA_MAX	128#define IN_CLASSB(i)	(((long)(i)&0xc0000000)==0x80000000)#define IN_CLASSB_NET	   0xffff0000#define IN_CLASSB_NSHIFT	16#define IN_CLASSB_HOST	  0x0000ffff#define IN_CLASSB_MAX	   65536#define IN_CLASSC(i)	(((long)(i)&0xe0000000)==0xc0000000)#define IN_CLASSC_NET	   0xffffff00#define IN_CLASSC_NSHIFT	8#define IN_CLASSC_HOST	  0xff#define INADDR_ANY	      (u_long)0#define INADDR_LOOPBACK	 0x7f000001#define INADDR_BROADCAST	(u_long)0xffffffff#define INADDR_NONE	0xffffffffstruct sockaddr_in {	short	sin_family;	u_short	sin_port;	struct	in_addr sin_addr;	char	sin_zero[8];};#define WSADESCRIPTION_LEN	256#define WSASYS_STATUS_LEN	128typedef struct WSAData {	WORD	wVersion;	WORD	wHighVersion;	char	szDescription[WSADESCRIPTION_LEN+1];	char	szSystemStatus[WSASYS_STATUS_LEN+1];	unsigned short	iMaxSockets;	unsigned short	iMaxUdpDg;	char * 	lpVendorInfo;} WSADATA;typedef WSADATA *LPWSADATA;#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))#define IP_OPTIONS	1#define SO_DEBUG	1#define SO_ACCEPTCONN	2#define SO_REUSEADDR	4#define SO_KEEPALIVE	8#define SO_DONTROUTE	16#define SO_BROADCAST	32#define SO_USELOOPBACK	64#define SO_LINGER	128#define SO_OOBINLINE	256#define SO_DONTLINGER	(u_int)(~SO_LINGER)#define SO_SNDBUF	0x1001#define SO_RCVBUF	0x1002#define SO_SNDLOWAT	0x1003#define SO_RCVLOWAT	0x1004#define SO_SNDTIMEO	0x1005#define SO_RCVTIMEO	0x1006#define SO_ERROR	0x1007#define SO_TYPE	0x1008#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */#define INVALID_SOCKET (SOCKET)(~0)#define SOCKET_ERROR	(-1)#define SOCK_STREAM	1#define SOCK_DGRAM	2#define SOCK_RAW	3#define SOCK_RDM	4#define SOCK_SEQPACKET	5#define TCP_NODELAY	0x0001#define AF_UNSPEC	0#define AF_UNIX	1#define AF_INET	2#define AF_IMPLINK	3#define AF_PUP	4#define AF_CHAOS	5#define AF_IPX	6#define AF_NS	6#define AF_ISO	7#define AF_OSI	AF_ISO#define AF_ECMA	8#define AF_DATAKIT	9#define AF_CCITT	10#define AF_SNA	11#define AF_DECnet	12#define AF_DLI	13#define AF_LAT	14#define AF_HYLINK	15#define AF_APPLETALK	16#define AF_NETBIOS	17#define AF_VOICEVIEW	18#define	AF_FIREFOX	19#define	AF_UNKNOWN1	20#define	AF_BAN	21#define AF_ATM	22#define AF_INET6	23#define AF_CLUSTER  24#define AF_12844    25#define AF_IRDA     26#define AF_NETDES   28                     #if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))#define AF_MAX	29struct sockaddr {	u_short sa_family;	char	sa_data[14];};#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) *//* Portable IPv6/IPv4 version of sockaddr.   Uses padding to force 8 byte alignment   and maximum size of 128 bytes */struct sockaddr_storage {    short ss_family;    char __ss_pad1[6];    /* pad to 8 */    __int64 __ss_align; /* force alignment */    char __ss_pad2[112];  /* pad to 128 */};struct sockproto {	u_short sp_family;	u_short sp_protocol;};#define PF_UNSPEC	AF_UNSPEC#define PF_UNIX	AF_UNIX#define PF_INET	AF_INET#define PF_IMPLINK	AF_IMPLINK#define PF_PUP	AF_PUP#define PF_CHAOS	AF_CHAOS#define PF_NS	AF_NS#define PF_IPX	AF_IPX#define PF_ISO	AF_ISO#define PF_OSI	AF_OSI#define PF_ECMA	AF_ECMA#define PF_DATAKIT	AF_DATAKIT#define PF_CCITT	AF_CCITT#define PF_SNA	AF_SNA#define PF_DECnet	AF_DECnet#define PF_DLI	AF_DLI#define PF_LAT	AF_LAT#define PF_HYLINK	AF_HYLINK#define PF_APPLETALK	AF_APPLETALK#define PF_VOICEVIEW	AF_VOICEVIEW#define PF_FIREFOX	AF_FIREFOX#define PF_UNKNOWN1	AF_UNKNOWN1#define PF_BAN	AF_BAN#define PF_ATM	AF_ATM#define PF_INET6	AF_INET6#define PF_MAX	AF_MAX#define SOL_SOCKET	0xffff#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))#define SOMAXCONN	0x7fffffff /* (5) in WinSock1.1 */#define MSG_OOB	1#define MSG_PEEK	2#define MSG_DONTROUTE	4#endif  /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */#define MSG_MAXIOVLEN	16#define MSG_PARTIAL	0x8000#define MAXGETHOSTSTRUCT	1024#define FD_READ_BIT      0#define FD_READ          (1 << FD_READ_BIT)  #define FD_WRITE_BIT     1#define FD_WRITE         (1 << FD_WRITE_BIT)#define FD_OOB_BIT       2#define FD_OOB           (1 << FD_OOB_BIT)#define FD_ACCEPT_BIT    3#define FD_ACCEPT        (1 << FD_ACCEPT_BIT)#define FD_CONNECT_BIT   4#define FD_CONNECT       (1 << FD_CONNECT_BIT)#define FD_CLOSE_BIT     5#define FD_CLOSE         (1 << FD_CLOSE_BIT)/* winsock1.1 defines stop at FD_CLOSE (32) */#define FD_QOS_BIT       6#define FD_QOS           (1 << FD_QOS_BIT)#define FD_GROUP_QOS_BIT 7#define FD_GROUP_QOS     (1 << FD_GROUP_QOS_BIT)#define FD_ROUTING_INTERFACE_CHANGE_BIT 8#define FD_ROUTING_INTERFACE_CHANGE     (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)#define FD_ADDRESS_LIST_CHANGE_BIT 9#define FD_ADDRESS_LIST_CHANGE     (1 << FD_ADDRESS_LIST_CHANGE_BIT)#define FD_MAX_EVENTS    10#define FD_ALL_EVENTS    ((1 << FD_MAX_EVENTS) - 1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -