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

📄 f-b2.html

📁 WinSock编程规范及应用
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<P ALIGN="JUSTIFY"> * WinSock 2.0 extension </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>-</FONT><FONT SIZE=3> new options</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define SO_GROUP_ID       0x2001          /* ID of a socket</P>
<P ALIGN="JUSTIFY">group */</P>
<P ALIGN="JUSTIFY">#define SO_GROUP_PRIORITY 0x2002          /* the relative</P>
<P ALIGN="JUSTIFY">priority within a group */</P>
<P ALIGN="JUSTIFY">#define SO_MAX_MSG_SIZE   0x2003          /* maximum message</P>
<P ALIGN="JUSTIFY">size */</P>
<P ALIGN="JUSTIFY">#define SO_PROTOCOL_INFO  0x2004          /* PROTOCOL_INFO</P>
<P ALIGN="JUSTIFY">structure */</P>
<P ALIGN="JUSTIFY">#define PVD_CONFIG        0x3001          /* configuration</P>
<P ALIGN="JUSTIFY">info for service provider */</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * TCP options.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define TCP_NODELAY     0x0001</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Address families.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define AF_UNSPEC       0               /* unspecified */</P>
<P ALIGN="JUSTIFY">#define AF_UNIX         1               /* local to host</P>
<P ALIGN="JUSTIFY">(pipes, portals) */</P>
<P ALIGN="JUSTIFY">#define AF_INET         2               /* internetwork:</P>
<P ALIGN="JUSTIFY">UDP, TCP, etc. */</P>
<P ALIGN="JUSTIFY">#define AF_IMPLINK      3               /* arpanet imp</P>
<P ALIGN="JUSTIFY">addresses */</P>
<P ALIGN="JUSTIFY">#define AF_PUP          4               /* pup protocols:</P>
<P ALIGN="JUSTIFY">e.g. BSP */</P>
<P ALIGN="JUSTIFY">#define AF_CHAOS        5               /* mit CHAOS</P>
<P ALIGN="JUSTIFY">protocols */</P>
<P ALIGN="JUSTIFY">#define AF_NS           6               /* XEROX NS</P>
<P ALIGN="JUSTIFY">protocols */</P>
<P ALIGN="JUSTIFY">#define AF_IPX          AF_NS           /* IPX protocols:</P>
<P ALIGN="JUSTIFY">IPX, SPX, etc. */</P>
<P ALIGN="JUSTIFY">#define AF_ISO          7               /* ISO protocols */</P>
<P ALIGN="JUSTIFY">#define AF_OSI          AF_ISO          /* OSI is ISO */</P>
<P ALIGN="JUSTIFY">#define AF_ECMA         8               /* european computer</P>
<P ALIGN="JUSTIFY">manufacturers */</P>
<P ALIGN="JUSTIFY">#define AF_DATAKIT      9               /* datakit protocols</P>
<P ALIGN="JUSTIFY">*/</P>
<P ALIGN="JUSTIFY">#define AF_CCITT        10              /* CCITT protocols,</P>
<P ALIGN="JUSTIFY">X.25 etc */</P>
<P ALIGN="JUSTIFY">#define AF_SNA          11              /* IBM SNA */</P>
<P ALIGN="JUSTIFY">#define AF_DECnet       12              /* DECnet */</P>
<P ALIGN="JUSTIFY">#define AF_DLI          13              /* Direct data link</P>
<P ALIGN="JUSTIFY">interface */</P>
<P ALIGN="JUSTIFY">#define AF_LAT          14              /* LAT */</P>
<P ALIGN="JUSTIFY">#define AF_HYLINK       15              /* NSC Hyperchannel</P>
<P ALIGN="JUSTIFY">*/</P>
<P ALIGN="JUSTIFY">#define AF_APPLETALK    16              /* AppleTalk */</P>
<P ALIGN="JUSTIFY">#define AF_NETBIOS      17              /* NetBios-style</P>
<P ALIGN="JUSTIFY">addresses */</P>
<P ALIGN="JUSTIFY">#define AF_FIREFOX      18              /* Protocols from</P>
<P ALIGN="JUSTIFY">Firefox */</P>
<P ALIGN="JUSTIFY">#define AF_VOICEVIEW    19              /* VoiceView */</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">#define AF_MAX          20</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Structure used by kernel to store most</P>
<P ALIGN="JUSTIFY"> * addresses.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">struct sockaddr {</P>
<P ALIGN="JUSTIFY">        u_short sa_family;              /* address family */</P>
<P ALIGN="JUSTIFY">        char    sa_data[14];            /* up to 14 bytes of</P>
<P ALIGN="JUSTIFY">direct address */</P>
<P ALIGN="JUSTIFY">};</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Structure used by kernel to pass protocol</P>
<P ALIGN="JUSTIFY"> * information in raw sockets.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">struct sockproto {</P>
<P ALIGN="JUSTIFY">        u_short sp_family;              /* address family */</P>
<P ALIGN="JUSTIFY">        u_short sp_protocol;            /* protocol */</P>
<P ALIGN="JUSTIFY">};</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Protocol families, same as address families for now.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define PF_UNSPEC       AF_UNSPEC</P>
<P ALIGN="JUSTIFY">#define PF_UNIX         AF_UNIX</P>
<P ALIGN="JUSTIFY">#define PF_INET         AF_INET</P>
<P ALIGN="JUSTIFY">#define PF_IMPLINK      AF_IMPLINK</P>
<P ALIGN="JUSTIFY">#define PF_PUP          AF_PUP</P>
<P ALIGN="JUSTIFY">#define PF_CHAOS        AF_CHAOS</P>
<P ALIGN="JUSTIFY">#define PF_NS           AF_NS</P>
<P ALIGN="JUSTIFY">#define PF_IPX          AF_IPX</P>
<P ALIGN="JUSTIFY">#define PF_ISO          AF_ISO</P>
<P ALIGN="JUSTIFY">#define PF_OSI          AF_OSI</P>
<P ALIGN="JUSTIFY">#define PF_ECMA         AF_ECMA</P>
<P ALIGN="JUSTIFY">#define PF_DATAKIT      AF_DATAKIT</P>
<P ALIGN="JUSTIFY">#define PF_CCITT        AF_CCITT</P>
<P ALIGN="JUSTIFY">#define PF_SNA          AF_SNA</P>
<P ALIGN="JUSTIFY">#define PF_DECnet       AF_DECnet</P>
<P ALIGN="JUSTIFY">#define PF_DLI          AF_DLI</P>
<P ALIGN="JUSTIFY">#define PF_LAT          AF_LAT</P>
<P ALIGN="JUSTIFY">#define PF_HYLINK       AF_HYLINK</P>
<P ALIGN="JUSTIFY">#define PF_APPLETALK    AF_APPLETALK</P>
<P ALIGN="JUSTIFY">#define PF_FIREFOX      AF_FIREFOX</P>
<P ALIGN="JUSTIFY">#define PF_VOICEVIEW    AF_VOICEVIEW</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">#define PF_MAX          AF_MAX</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Structure used for manipulating linger option.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">struct  linger {</P>
<P ALIGN="JUSTIFY">        u_short l_onoff;                /* option on/off */</P>
<P ALIGN="JUSTIFY">        u_short l_linger;               /* linger time */</P>
<P ALIGN="JUSTIFY">};</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Level number for (get/set)sockopt() to apply to socket</P>
<P ALIGN="JUSTIFY">itself.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define SOL_SOCKET      0xffff          /* options for</P>
<P ALIGN="JUSTIFY">socket level */</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Maximum queue length specifiable by listen.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define SOMAXCONN       5</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">#define MSG_OOB         0x1             /* process out-of-</P>
<P ALIGN="JUSTIFY">band data */</P>
<P ALIGN="JUSTIFY">#define MSG_PEEK        0x2             /* peek at incoming</P>
<P ALIGN="JUSTIFY">message */</P>
<P ALIGN="JUSTIFY">#define MSG_DONTROUTE   0x4             /* send without</P>
<P ALIGN="JUSTIFY">using routing tables */</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">#define MSG_MAXIOVLEN   16</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Define constant based on rfc883, used by gethostbyxxxx()</P>
<P ALIGN="JUSTIFY">calls.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define MAXGETHOSTSTRUCT        1024</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Define flags to be used with the WSAAsyncSelect() and</P>
<P ALIGN="JUSTIFY">WSAEventSelect() call.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define FD_READ         0x01</P>
<P ALIGN="JUSTIFY">#define FD_WRITE        0x02</P>
<P ALIGN="JUSTIFY">#define FD_OOB          0x04</P>
<P ALIGN="JUSTIFY">#define FD_ACCEPT       0x08</P>
<P ALIGN="JUSTIFY">#define FD_CONNECT      0x10</P>
<P ALIGN="JUSTIFY">#define FD_CLOSE        0x20</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * WinSock 2.0 extension </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>-</FONT><FONT SIZE=3> new flags for WSAAsyncSelect()</P>
<P ALIGN="JUSTIFY">and WSAEventSelect()</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define FD_QOS          0x40</P>
<P ALIGN="JUSTIFY">#define FD_GROUP_QOS    0x80</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * All Windows Sockets error constants are biased by</P>
<P ALIGN="JUSTIFY">WSABASEERR from</P>
<P ALIGN="JUSTIFY"> * the "normal"</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define WSABASEERR              10000</P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Windows Sockets definitions of regular Microsoft C error</P>
<P ALIGN="JUSTIFY">constants</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define WSAEINTR                (WSABASEERR+4)</P>
<P ALIGN="JUSTIFY">#define WSAEBADF                (WSABASEERR+9)</P>
<P ALIGN="JUSTIFY">#define WSAEACCES               (WSABASEERR+13)</P>
<P ALIGN="JUSTIFY">#define WSAEFAULT               (WSABASEERR+14)</P>
<P ALIGN="JUSTIFY">#define WSAEINVAL               (WSABASEERR+22)</P>
<P ALIGN="JUSTIFY">#define WSAEMFILE               (WSABASEERR+24)</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Windows Sockets definitions of regular Berkeley error</P>
<P ALIGN="JUSTIFY">constants</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define WSAEWOULDBLOCK          (WSABASEERR+35)</P>
<P ALIGN="JUSTIFY">#define WSAEINPROGRESS          (WSABASEERR+36)</P>
<P ALIGN="JUSTIFY">#define WSAEALREADY             (WSABASEERR+37)</P>
<P ALIGN="JUSTIFY">#define WSAENOTSOCK             (WSABASEERR+38)</P>
<P ALIGN="JUSTIFY">#define WSAEDESTADDRREQ         (WSABASEERR+39)</P>
<P ALIGN="JUSTIFY">#define WSAEMSGSIZE             (WSABASEERR+40)</P>
<P ALIGN="JUSTIFY">#define WSAEPROTOTYPE           (WSABASEERR+41)</P>
<P ALIGN="JUSTIFY">#define WSAENOPROTOOPT          (WSABASEERR+42)</P>
<P ALIGN="JUSTIFY">#define WSAEPROTONOSUPPORT      (WSABASEERR+43)</P>
<P ALIGN="JUSTIFY">#define WSAESOCKTNOSUPPORT      (WSABASEERR+44)</P>
<P ALIGN="JUSTIFY">#define WSAEOPNOTSUPP           (WSABASEERR+45)</P>
<P ALIGN="JUSTIFY">#define WSAEPFNOSUPPORT         (WSABASEERR+46)</P>
<P ALIGN="JUSTIFY">#define WSAEAFNOSUPPORT         (WSABASEERR+47)</P>
<P ALIGN="JUSTIFY">#define WSAEADDRINUSE           (WSABASEERR+48)</P>
<P ALIGN="JUSTIFY">#define WSAEADDRNOTAVAIL        (WSABASEERR+49)</P>
<P ALIGN="JUSTIFY">#define WSAENETDOWN             (WSABASEERR+50)</P>
<P ALIGN="JUSTIFY">#define WSAENETUNREACH          (WSABASEERR+51)</P>
<P ALIGN="JUSTIFY">#define WSAENETRESET            (WSABASEERR+52)</P>
<P ALIGN="JUSTIFY">#define WSAECONNABORTED         (WSABASEERR+53)</P>
<P ALIGN="JUSTIFY">#define WSAECONNRESET           (WSABASEERR+54)</P>
<P ALIGN="JUSTIFY">#define WSAENOBUFS              (WSABASEERR+55)</P>
<P ALIGN="JUSTIFY">#define WSAEISCONN              (WSABASEERR+56)</P>
<P ALIGN="JUSTIFY">#define WSAENOTCONN             (WSABASEERR+57)</P>
<P ALIGN="JUSTIFY">#define WSAESHUTDOWN            (WSABASEERR+58)</P>
<P ALIGN="JUSTIFY">#define WSAETOOMANYREFS         (WSABASEERR+59)</P>
<P ALIGN="JUSTIFY">#define WSAETIMEDOUT            (WSABASEERR+60)</P>
<P ALIGN="JUSTIFY">#define WSAECONNREFUSED         (WSABASEERR+61)</P>
<P ALIGN="JUSTIFY">#define WSAELOOP                (WSABASEERR+62)</P>
<P ALIGN="JUSTIFY">#define WSAENAMETOOLONG         (WSABASEERR+63)</P>
<P ALIGN="JUSTIFY">#define WSAEHOSTDOWN            (WSABASEERR+64)</P>
<P ALIGN="JUSTIFY">#define WSAEHOSTUNREACH         (WSABASEERR+65)</P>
<P ALIGN="JUSTIFY">#define WSAENOTEMPTY            (WSABASEERR+66)</P>
<P ALIGN="JUSTIFY">#define WSAEPROCLIM             (WSABASEERR+67)</P>
<P ALIGN="JUSTIFY">#define WSAEUSERS               (WSABASEERR+68)</P>
<P ALIGN="JUSTIFY">#define WSAEDQUOT               (WSABASEERR+69)</P>
<P ALIGN="JUSTIFY">#define WSAESTALE               (WSABASEERR+70)</P>
<P ALIGN="JUSTIFY">#define WSAEREMOTE              (WSABASEERR+71)</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Extended Windows Sockets error constant definitions</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY">#define WSASYSNOTREADY          (WSABASEERR+91)</P>
<P ALIGN="JUSTIFY">#define WSAVERNOTSUPPORTED      (WSABASEERR+92)</P>
<P ALIGN="JUSTIFY">#define WSANOTINITIALISED       (WSABASEERR+93)</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">/*</P>
<P ALIGN="JUSTIFY"> * Error return codes from gethostbyname() and</P>
<P ALIGN="JUSTIFY">gethostbyaddr()</P>
<P ALIGN="JUSTIFY"> * (when using the resolver). Note that these errors are</P>
<P ALIGN="JUSTIFY"> * retrieved via WSAGetLastError() and must therefore follow</P>
<P ALIGN="JUSTIFY"> * the rules for avoiding clashes with error numbers from</P>
<P ALIGN="JUSTIFY"> * specific implementations or language run-time systems.</P>
<P ALIGN="JUSTIFY"> * For this reason the codes are based at WSABASEERR+1001.</P>
<P ALIGN="JUSTIFY"> * Note also that [WSA]NO_ADDRESS is defined only for</P>
<P ALIGN="JUSTIFY"> * compatibility purposes.</P>
<P ALIGN="JUSTIFY"> */</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">#define h_errno         WSAGetLastError()</P>
<P ALIGN="JUSTIFY"></P>

⌨️ 快捷键说明

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