📄 winsock2.h
字号:
#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 + -