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

📄 winsock.h

📁 彭国伦Fortran95程序源码
💻 H
字号:
/*  Definitions for winsock 1.1    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. */#ifndef _WINSOCK_H#define _WINSOCK_H#define _GNU_H_WINDOWS32_SOCKETS#include <windows.h>#ifndef _SYS_TYPES_Htypedef unsigned char	u_char;typedef unsigned short	u_short;typedef unsigned int	u_int;typedef unsigned long	u_long;#endif /* ndef _SYS_TYPES_H */typedef u_int	SOCKET;#ifndef FD_SETSIZE#define FD_SETSIZE	64#endif#ifndef _SYS_TYPES_H/* fd_set may have been defined by the newlib <sys/types.h>.  */#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#define FD_SET(fd, set) do { \    if (((fd_set *)(set))->fd_count < FD_SETSIZE) \	((fd_set *)(set))->fd_array[((fd_set *)(set))->fd_count++]=(fd);\}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#endif /* ndef _SYS_TYPES_H */#ifndef __INSIDE_CYGWIN__struct timeval {	long    tv_sec;	long    tv_usec;};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 /* ndef __INSIDE_CYGWIN__ */#define timerisset(tvp)	 ((tvp)->tv_sec || (tvp)->tv_usec)#define timercmp(tvp, uvp, cmp) \	((tvp)->tv_sec cmp (uvp)->tv_sec || \	 (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)#define timerclear(tvp)	 (tvp)->tv_sec = (tvp)->tv_usec = 0#define IOCPARM_MASK	0x7f#define IOC_VOID	0x20000000#define IOC_OUT	0x40000000#define IOC_IN	0x80000000#define IOC_INOUT	(IOC_IN|IOC_OUT)#ifndef __INSIDE_CYGWIN__#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 /* ndef __INSIDE_CYGWIN__ */#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)#ifndef __INSIDE_CYGWIN__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__ */#define IPPROTO_IP	0#define IPPROTO_ICMP	1#define IPPROTO_GGP	2#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#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;#ifndef __INSIDE_CYGWIN__#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#define SO_CONNDATA	0x7000#define SO_CONNOPT	0x7001#define SO_DISCDATA	0x7002#define SO_DISCOPT	0x7003#define SO_CONNDATALEN	0x7004#define SO_CONNOPTLEN	0x7005#define SO_DISCDATALEN	0x7006#define SO_DISCOPTLEN	0x7007#define SO_OPENTYPE	0x7008#define SO_SYNCHRONOUS_ALERT	0x10#define SO_SYNCHRONOUS_NONALERT	0x20#define SO_MAXDG	0x7009#define SO_MAXPATHDG	0x700A#endif#define IP_MULTICAST_IF	2#define IP_MULTICAST_TTL	3#define IP_MULTICAST_LOOP	4#define IP_ADD_MEMBERSHIP	5#define IP_DROP_MEMBERSHIP  6#define IP_DEFAULT_MULTICAST_TTL   1#define IP_DEFAULT_MULTICAST_LOOP  1#define IP_MAX_MEMBERSHIPS	 20struct ip_mreq {	struct in_addr imr_multiaddr;	struct in_addr imr_interface;};#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 TCP_BSDURGENT	0x7000#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#ifndef __INSIDE_CYGWIN__#define AF_MAX	19struct sockaddr {	u_short sa_family;	char	sa_data[14];};#endif /* ndef __INSIDE_CYGWIN__ */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_MAX	AF_MAX#define SOL_SOCKET	0xffff#define SOMAXCONN	5#ifndef __INSIDE_CYGWIN__#define MSG_OOB	1#define MSG_PEEK	2#define MSG_DONTROUTE	4#endif  /* ndef __INSIDE_CYGWIN__ */#define MSG_MAXIOVLEN	16#define MSG_PARTIAL	0x8000#define MAXGETHOSTSTRUCT	1024#define FD_READ	1#define FD_WRITE	2#define FD_OOB	4#define FD_ACCEPT	8#define FD_CONNECT	16#define FD_CLOSE	32#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)#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)#define WSANO_ADDRESS	WSANO_DATA#ifndef __INSIDE_CYGWIN__#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#endifSOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);int PASCAL bind(SOCKET,const struct sockaddr*,int);int PASCAL closesocket(SOCKET);int PASCAL connect(SOCKET,const struct sockaddr*,int);int PASCAL ioctlsocket(SOCKET,long,u_long *);int PASCAL getpeername(SOCKET,struct sockaddr*,int*);int PASCAL getsockname(SOCKET,struct sockaddr*,int*);int PASCAL getsockopt(SOCKET,int,int,char*,int*);unsigned long PASCAL inet_addr(const char*);char * PASCAL inet_ntoa(struct in_addr);int PASCAL listen(SOCKET,int);int PASCAL recv(SOCKET,char*,int,int);int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);int PASCAL send(SOCKET,const char*,int,int);int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);int PASCAL setsockopt(SOCKET,int,int,const char*,int);int PASCAL shutdown(SOCKET,int);SOCKET PASCAL socket(int,int,int);struct hostent* PASCAL gethostbyaddr(const char*,int,int);struct hostent* PASCAL gethostbyname(const char*);struct servent* PASCAL getservbyport(int,const char*);struct servent* PASCAL getservbyname(const char*,const char*);struct protoent* PASCAL getprotobynumber(int);struct protoent* PASCAL getprotobyname(const char*);int PASCAL WSAStartup(WORD,LPWSADATA);int PASCAL WSACleanup(void);void PASCAL WSASetLastError(int);int PASCAL WSAGetLastError(void);BOOL PASCAL WSAIsBlocking(void);int PASCAL WSAUnhookBlockingHook(void);FARPROC PASCAL WSASetBlockingHook(FARPROC);int PASCAL WSACancelBlockingCall(void);HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);int PASCAL WSACancelAsyncRequest(HANDLE);int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long);int PASCAL WSARecvEx(SOCKET,char*,int,int*);typedef struct _TRANSMIT_FILE_BUFFERS {	PVOID Head;	DWORD HeadLength;	PVOID Tail;	DWORD TailLength;} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;BOOL PASCAL TransmitFile(SOCKET,HANDLE,DWORD,DWORD,LPOVERLAPPED,LPTRANSMIT_FILE_BUFFERS,DWORD);#ifndef __INSIDE_CYGWIN__u_long PASCAL htonl(u_long);u_long PASCAL ntohl(u_long);#ifdef _WIN32u_short PASCAL htons(u_long);u_short PASCAL ntohs(u_long);#elseu_short PASCAL htons(u_short);u_short PASCAL ntohs(u_short);#endifint PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);int PASCAL gethostname(char*,int);#endif /* ndef __INSIDE_CYGWIN__ */#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_in SOCKADDR_IN;typedef struct sockaddr_in *PSOCKADDR_IN;typedef struct sockaddr_in *LPSOCKADDR_IN;typedef struct linger LINGER;typedef struct linger *PLINGER;typedef struct linger *LPLINGER;typedef struct in_addr IN_ADDR;typedef struct in_addr *PIN_ADDR;typedef struct in_addr *LPIN_ADDR;typedef struct fd_set FD_SET;typedef struct fd_set *PFD_SET;typedef struct fd_set *LPFD_SET;typedef struct hostent HOSTENT;typedef struct hostent *PHOSTENT;typedef struct hostent *LPHOSTENT;typedef struct servent SERVENT;typedef struct servent *PSERVENT;typedef struct servent *LPSERVENT;typedef struct protoent PROTOENT;typedef struct protoent *PPROTOENT;typedef struct protoent *LPPROTOENT;typedef struct timeval TIMEVAL;typedef struct timeval *PTIMEVAL;typedef struct timeval *LPTIMEVAL;#endif

⌨️ 快捷键说明

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