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

📄 winsock2.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 4 页
字号:
#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];};/* Portable IPv6/IPv4 version of sockaddr.  Based on RFC 2553.   Pad to force 8 byte alignment and maximum size of 128 bytes. *//* * Desired design of maximum size and alignment */#define _SS_MAXSIZE    128#define _SS_ALIGNSIZE  (sizeof (__int64)) /* * Definitions used for sockaddr_storage structure paddings design. */#define _SS_PAD1SIZE   (_SS_ALIGNSIZE - sizeof (short))#define _SS_PAD2SIZE   (_SS_MAXSIZE - (sizeof (short) \				       + _SS_PAD1SIZE \				       + _SS_ALIGNSIZE))struct sockaddr_storage {    short ss_family;    char __ss_pad1[_SS_PAD1SIZE];  /* pad to 8 */    __int64 __ss_align;  	   /* force alignment */    char __ss_pad2[_SS_PAD2SIZE];  /*  pad to 128 */};#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */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)#ifndef WSABASEERR#define WSABASEERR	10000#define WSAEINTR	(WSABASEERR+4)#define WSAEBADF	(WSABASEERR+9)#define WSAEACCES	(WSABASEERR+13)#define WSAEFAULT	(WSABASEERR+14)#define WSAEINVAL	(WSABASEERR+22)#define WSAEMFILE	(WSABASEERR+24)#define WSAEWOULDBLOCK	(WSABASEERR+35)#define WSAEINPROGRESS	(WSABASEERR+36) /* deprecated on WinSock2 */#define WSAEALREADY	(WSABASEERR+37)#define WSAENOTSOCK	(WSABASEERR+38)#define WSAEDESTADDRREQ	(WSABASEERR+39)#define WSAEMSGSIZE	(WSABASEERR+40)#define WSAEPROTOTYPE	(WSABASEERR+41)#define WSAENOPROTOOPT	(WSABASEERR+42)#define WSAEPROTONOSUPPORT	(WSABASEERR+43)#define WSAESOCKTNOSUPPORT	(WSABASEERR+44)#define WSAEOPNOTSUPP	(WSABASEERR+45)#define WSAEPFNOSUPPORT	(WSABASEERR+46)#define WSAEAFNOSUPPORT	(WSABASEERR+47)#define WSAEADDRINUSE	(WSABASEERR+48)#define WSAEADDRNOTAVAIL	(WSABASEERR+49)#define WSAENETDOWN	(WSABASEERR+50)#define WSAENETUNREACH	(WSABASEERR+51)#define WSAENETRESET	(WSABASEERR+52)#define WSAECONNABORTED	(WSABASEERR+53)#define WSAECONNRESET	(WSABASEERR+54)#define WSAENOBUFS	(WSABASEERR+55)#define WSAEISCONN	(WSABASEERR+56)#define WSAENOTCONN	(WSABASEERR+57)#define WSAESHUTDOWN	(WSABASEERR+58)#define WSAETOOMANYREFS	(WSABASEERR+59)#define WSAETIMEDOUT	(WSABASEERR+60)#define WSAECONNREFUSED	(WSABASEERR+61)#define WSAELOOP	(WSABASEERR+62)#define WSAENAMETOOLONG	(WSABASEERR+63)#define WSAEHOSTDOWN	(WSABASEERR+64)#define WSAEHOSTUNREACH	(WSABASEERR+65)#define WSAENOTEMPTY	(WSABASEERR+66)#define WSAEPROCLIM	(WSABASEERR+67)#define WSAEUSERS	(WSABASEERR+68)#define WSAEDQUOT	(WSABASEERR+69)#define WSAESTALE	(WSABASEERR+70)#define WSAEREMOTE	(WSABASEERR+71)#define WSAEDISCON	(WSABASEERR+101)#define WSASYSNOTREADY	(WSABASEERR+91)#define WSAVERNOTSUPPORTED	(WSABASEERR+92)#define WSANOTINITIALISED	(WSABASEERR+93)#define WSAHOST_NOT_FOUND	(WSABASEERR+1001)#define WSATRY_AGAIN	(WSABASEERR+1002)#define WSANO_RECOVERY	(WSABASEERR+1003)#define WSANO_DATA	(WSABASEERR+1004)/* WinSock2 specific error codes */#define WSAENOMORE	(WSABASEERR+102)#define WSAECANCELLED	(WSABASEERR+103)#define WSAEINVALIDPROCTABLE	(WSABASEERR+104)#define WSAEINVALIDPROVIDER	(WSABASEERR+105)#define WSAEPROVIDERFAILEDINIT	(WSABASEERR+106)#define WSASYSCALLFAILURE	(WSABASEERR+107)#define WSASERVICE_NOT_FOUND	(WSABASEERR+108)#define WSATYPE_NOT_FOUND	(WSABASEERR+109)#define WSA_E_NO_MORE	(WSABASEERR+110)#define WSA_E_CANCELLED	(WSABASEERR+111)#define WSAEREFUSED	(WSABASEERR+112)/* WS QualityofService errors */#define WSA_QOS_RECEIVERS	(WSABASEERR + 1005)#define WSA_QOS_SENDERS	(WSABASEERR + 1006)#define WSA_QOS_NO_SENDERS	(WSABASEERR + 1007)#define WSA_QOS_NO_RECEIVERS	(WSABASEERR + 1008)#define WSA_QOS_REQUEST_CONFIRMED	(WSABASEERR + 1009)#define WSA_QOS_ADMISSION_FAILURE	(WSABASEERR + 1010)#define WSA_QOS_POLICY_FAILURE	(WSABASEERR + 1011)#define WSA_QOS_BAD_STYLE	(WSABASEERR + 1012)#define WSA_QOS_BAD_OBJECT	(WSABASEERR + 1013)#define WSA_QOS_TRAFFIC_CTRL_ERROR	(WSABASEERR + 1014)#define WSA_QOS_GENERIC_ERROR	(WSABASEERR + 1015)#define WSA_QOS_ESERVICETYPE	(WSABASEERR + 1016)#define WSA_QOS_EFLOWSPEC	(WSABASEERR + 1017)#define WSA_QOS_EPROVSPECBUF	(WSABASEERR + 1018)#define WSA_QOS_EFILTERSTYLE	(WSABASEERR + 1019)#define WSA_QOS_EFILTERTYPE	(WSABASEERR + 1020)#define WSA_QOS_EFILTERCOUNT	(WSABASEERR + 1021)#define WSA_QOS_EOBJLENGTH	(WSABASEERR + 1022)#define WSA_QOS_EFLOWCOUNT	(WSABASEERR + 1023)#define WSA_QOS_EUNKOWNPSOBJ	(WSABASEERR + 1024)#define WSA_QOS_EPOLICYOBJ	(WSABASEERR + 1025)#define WSA_QOS_EFLOWDESC	(WSABASEERR + 1026)#define WSA_QOS_EPSFLOWSPEC	(WSABASEERR + 1027)#define WSA_QOS_EPSFILTERSPEC	(WSABASEERR + 1028)#define WSA_QOS_ESDMODEOBJ	(WSABASEERR + 1029)#define WSA_QOS_ESHAPERATEOBJ	(WSABASEERR + 1030)#define WSA_QOS_RESERVED_PETYPE	(WSABASEERR + 1031)#endif /* !WSABASEERR */#define WSANO_ADDRESS	WSANO_DATA#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))#define h_errno WSAGetLastError()#define HOST_NOT_FOUND	WSAHOST_NOT_FOUND#define TRY_AGAIN	WSATRY_AGAIN#define NO_RECOVERY	WSANO_RECOVERY#define NO_DATA	WSANO_DATA#define NO_ADDRESS	WSANO_ADDRESS#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */WINSOCK_API_LINKAGE SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);WINSOCK_API_LINKAGE int PASCAL bind(SOCKET,const struct sockaddr*,int);WINSOCK_API_LINKAGE int PASCAL closesocket(SOCKET);WINSOCK_API_LINKAGE int PASCAL connect(SOCKET,const struct sockaddr*,int);WINSOCK_API_LINKAGE int PASCAL ioctlsocket(SOCKET,long,u_long *);WINSOCK_API_LINKAGE int PASCAL getpeername(SOCKET,struct sockaddr*,int*);WINSOCK_API_LINKAGE int PASCAL getsockname(SOCKET,struct sockaddr*,int*);WINSOCK_API_LINKAGE int PASCAL getsockopt(SOCKET,int,int,char*,int*);WINSOCK_API_LINKAGE unsigned long PASCAL inet_addr(const char*);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);WINSOCK_API_LINKAGE int PASCAL listen(SOCKET,int);WINSOCK_API_LINKAGE int PASCAL recv(SOCKET,char*,int,int);WINSOCK_API_LINKAGE int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);WINSOCK_API_LINKAGE int PASCAL send(SOCKET,const char*,int,int);WINSOCK_API_LINKAGE int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);WINSOCK_API_LINKAGE int PASCAL setsockopt(SOCKET,int,int,const char*,int);WINSOCK_API_LINKAGE int PASCAL shutdown(SOCKET,int);WINSOCK_API_LINKAGE SOCKET PASCAL socket(int,int,int);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);typedef SOCKET (PASCAL * LPFN_ACCEPT)(SOCKET, struct sockaddr*,int *);typedef int (PASCAL * LPFN_BIND)(SOCKET, const struct sockaddr*,int);typedef int (PASCAL * LPFN_CLOSESOCKET)(SOCKET);typedef int (PASCAL * LPFN_CONNECT)(SOCKET, const struct sockaddr*,int);typedef int (PASCAL * LPFN_IOCTLSOCKET)(SOCKET, long, u_long*);typedef int	(PASCAL * LPFN_GETPEERNAME)(SOCKET, struct sockaddr*, int*);typedef int(PASCAL * LPFN_GETSOCKNAME)(SOCKET, struct sockaddr*, int*);typedef int(PASCAL * LPFN_GETSOCKOPT)(SOCKET, int, int, char*, int*);typedef u_long(PASCAL * LPFN_HTONL)(u_long);typedef u_short(PASCAL * LPFN_HTONS)(u_short);typedef unsigned long(PASCAL * LPFN_INET_ADDR)(const char*);typedef char*(PASCAL * LPFN_INET_NTOA)(struct in_addr);typedef int(PASCAL * LPFN_LISTEN)(SOCKET, int);typedef u_long(PASCAL * LPFN_NTOHL)(u_long);typedef u_short(PASCAL * LPFN_NTOHS)(u_short);typedef int(PASCAL * LPFN_RECV)(SOCKET, char*, int, int);typedef int(PASCAL * LPFN_RECVFROM)(SOCKET, char*, int, int, struct sockaddr*,  int*);typedef int(PASCAL * LPFN_SELECT)(int, fd_set*, fd_set*, fd_set*, const struct timeval*);typedef int(PASCAL * LPFN_SEND)(SOCKET, const char*, int, int);typedef int(PASCAL * LPFN_SENDTO)(SOCKET, const char*, int, int, const struct sockaddr*, int);typedef int(PASCAL * LPFN_SETSOCKOPT)(SOCKET, int, int, const char*, int);typedef int(PASCAL * LPFN_SHUTDOWN)(SOCKET, int);typedef SOCKET(PASCAL * LPFN_SOCKET)(int, int, int);typedef struct hostent*(PASCAL * LPFN_GETHOSTBYADDR)( const char*, int, int);typedef struct hostent*(PASCAL * LPFN_GETHOSTBYNAME)( const char*);typedef int(PASCAL * LPFN_GETHOSTNAME)(char*, int);typedef struct servent*(PASCAL * LPFN_GETSERVBYPORT)(int, const char*);typedef struct servent*(PASCAL * LPFN_GETSERVBYNAME)(const char*, const char*);typedef struct protoent*(PASCAL * LPFN_GETPROTOBYNUMBER)(int);typedef struct protoent*(PASCAL * LPFN_GETPROTOBYNAME)(const char*);WINSOCK_API_LINKAGE int PASCAL WSAStartup(WORD,LPWSADATA);WINSOCK_API_LINKAGE int PASCAL WSACleanup(void);WINSOCK_API_LINKAGE void PASCAL WSASetLastError(int);WINSOCK_API_LINKAGE int PASCAL WSAGetLastError(void);WINSOCK_API_LINKAGE typedef int(PASCAL * LPFN_WSASTARTUP)(WORD, LPWSADATA);typedef int(PASCAL * LPFN_WSACLEANUP)(void);typedef void(PASCAL * LPFN_WSASETLASTERROR)(int);typedef int(PASCAL * LPFN_WSAGETLASTERROR)(void);/* * Pseudo-blocking functions are deprecated in WinSock2 * spec. Use threads instead. */WINSOCK_API_LINKAGE BOOL PASCAL WSAIsBlocking(void);WINSOCK_API_LINKAGE int PASCAL WSAUnhookBlockingHook(void);WINSOCK_API_LINKAGE FARPROC PASCAL WSASetBlockingHook(FARPROC);WINSOCK_API_LINKAGE int PASCAL WSACancelBlockingCall(void);typedef BOOL(PASCAL * LPFN_WSAISBLOCKING)(void);typedef int(PASCAL * LPFN_WSAUNHOOKBLOCKINGHOOK)(void);typedef FARPROC (PASCAL * LPFN_WSASETBLOCKINGHOOK)(FARPROC);typedef int(PASCAL * LPFN_WSACANCELBLOCKINGCALL)(void);WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);WINSOCK_API_LINKAGE int PASCAL WSACancelAsyncRequest(HANDLE);WINSOCK_API_LINKAGE int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long);typedef HANDLE(PASCAL * LPFN_WSAASYNCGETSERVBYNAME)(HWND, u_int, const char *, const char *, char *, int);typedef HANDLE(PASCAL * LPFN_WSAASYNCGETSERVBYPORT)(HWND, u_int, int, const char *, char *, int);typedef HANDLE(PASCAL * LPFN_WSAASYNCGETPROTOBYNAME)(HWND, u_int, const char*, char*, int);typedef HANDLE(PASCAL * LPFN_WSAASYNCGETPROTOBYNUMBER)(HWND, u_int, int, char*, int);typedef HANDLE(PASCAL * LPFN_WSAASYNCGETHOSTBYADDR)(HWND, u_int, const char*, int, int, char*, int);typedef int(PASCAL * LPFN_WSACANCELASYNCREQUEST)(HANDLE);typedef int(PASCAL * LPFN_WSAASYNCSELECT)(SOCKET, HWND, u_int, long);#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))WINSOCK_API_LINKAGE u_long PASCAL htonl(u_long);WINSOCK_API_LINKAGE u_long PASCAL ntohl(u_long);WINSOCK_API_LINKAGE u_short PASCAL htons(u_short);WINSOCK_API_LINKAGE u_short PASCAL ntohs(u_short);WINSOCK_API_LINKAGE int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */int PASCAL gethostname(char*,int);#define WSAMAKEASYNCREPLY(b,e)	MAKELONG(b,e)#define WSAMAKESELECTREPLY(e,error)	MAKELONG(e,error)#define WSAGETASYNCBUFLEN(l)	LOWORD(l)#define WSAGETASYNCERROR(l)	HIWORD(l)#define WSAGETSELECTEVENT(l)	LOWORD(l)#define WSAGETSELECTERROR(l)	HIWORD(l)typedef struct sockaddr SOCKADDR;typedef struct sockaddr *PSOCKADDR;typedef struct sockaddr *LPSOCKADDR;typedef struct sockaddr_storage SOCKADDR_STORAGE, *PSOCKADDR_STORAGE;typedef struct sockaddr_in SOCKADDR_IN;typedef struct sockaddr_in *PSOCKADDR_IN;typedef struct sockaddr_in *LPSOCKADDR_IN;typedef struct linger LINGER;typedef struct linger *PLINGER;

⌨️ 快捷键说明

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