Difference between revisions of "Unit Winsock2"

From Ultibo.org
Jump to: navigation, search
Line 14: Line 14:
 
----
 
----
  
''To be documented''
+
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Winsock2 specific constants''' <code> WINSOCK_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>WINSOCK_VERSION = $0202;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WINSOCK_TCP_SERVER_THREAD_NAME = 'TCP Server';</code>
 +
| Thread name for TCP server threads
 +
|-
 +
| <code>WINSOCK_TCP_SERVER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL;</code>
 +
| Thread priority for TCP server threads
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WINSOCK_TCP_LISTENER_THREAD_NAME = 'TCP Listener';</code>
 +
| Thread name for TCP listener threads
 +
|-
 +
| <code>WINSOCK_TCP_LISTENER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL;</code>
 +
| Thread priority for TCP listener threads
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WINSOCK_UDP_SERVER_THREAD_NAME = 'UDP Server';</code>
 +
| Thread name for UDP server threads
 +
|-
 +
| <code>WINSOCK_UDP_SERVER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL;</code>
 +
| Thread priority for UDP server threads
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WINSOCK_UDP_LISTENER_THREAD_NAME = 'UDP Listener';</code>
 +
| Thread name for UDP listener threads
 +
|-
 +
| <code>WINSOCK_UDP_LISTENER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL;</code>
 +
| Thread priority for UDP listener threads
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FD_SETSIZE = GlobalSock.FD_SETSIZE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IOCPARM_MASK = GlobalSock.IOCPARM_MASK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IOC_VOID = GlobalSock.IOC_VOID;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IOC_OUT = GlobalSock.IOC_OUT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IOC_IN = GlobalSock.IOC_IN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IOC_INOUT = GlobalSock.IOC_INOUT;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FIONREAD = GlobalSock.FIONREAD; </code>
 +
| &nbsp;
 +
|-
 +
| <code>FIONBIO = GlobalSock.FIONBIO;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FIOASYNC = GlobalSock.FIOASYNC;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SIOCSHIWAT = GlobalSock.SIOCSHIWAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIOCGHIWAT = GlobalSock.SIOCGHIWAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIOCSLOWAT = GlobalSock.SIOCSLOWAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIOCGLOWAT = GlobalSock.SIOCGLOWAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIOCATMARK = GlobalSock.SIOCATMARK;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IMPLINK_IP = GlobalSock.IMPLINK_IP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IMPLINK_LOWEXPER = GlobalSock.IMPLINK_LOWEXPER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IMPLINK_HIGHEXPER = GlobalSock.IMPLINK_HIGHEXPER;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>TF_DISCONNECT = GlobalSock.TF_DISCONNECT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TF_REUSE_SOCKET = GlobalSock.TF_REUSE_SOCKET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TF_WRITE_BEHIND = GlobalSock.TF_WRITE_BEHIND;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>INET_ADDRSTR_ANY = GlobalSock.INET_ADDRSTR_ANY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>INET6_ADDRSTR_INIT = GlobalSock.INET6_ADDRSTR_INIT;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>INET_ADDRSTR_BROADCAST = GlobalSock.INET_ADDRSTR_BROADCAST;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>INET_ADDRSTRLEN = GlobalSock.INET_ADDRSTRLEN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>INET6_ADDRSTRLEN = GlobalSock.INET6_ADDRSTRLEN;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IN6ADDR_ANY_INIT:TIn6Addr = (u6_addr16: (0, 0, 0, 0, 0, 0, 0, 0));</code>
 +
| &nbsp;
 +
|-
 +
| <code>IN6ADDR_LOOPBACK_INIT:TIn6Addr = (u6_addr8: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>INADDR_ANY = GlobalSock.INADDR_ANY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>INADDR_LOOPBACK = GlobalSock.INADDR_LOOPBACK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>INADDR_BROADCAST = GlobalSock.INADDR_BROADCAST;</code>
 +
| &nbsp;
 +
|-
 +
| <code>INADDR_NONE = GlobalSock.INADDR_NONE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IN6ADDR_ANY:TIn6Addr = (u6_addr16: (0, 0, 0, 0, 0, 0, 0, 0));</code>
 +
| &nbsp;
 +
|-
 +
| <code>IN6ADDR_LOOPBACK:TIn6Addr = (u6_addr8: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Level number for (get/set)sockopt() to apply to socket itself''
 +
|-
 +
| <code>SOL_SOCKET = GlobalSock.SOL_SOCKET;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Maximum queue length specifiable by listen''
 +
|-
 +
| <code>SOMAXCONN = $7fffffff;</code>
 +
| SOMAXCONN = GlobalSock.SOMAXCONN; (Redefined for Winsock2)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Return flags''
 +
|-
 +
| <code>RESULT_IS_ALIAS = $0001;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_MULTIPLE = $00000001;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>BIGENDIAN = $0000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LITTLEENDIAN = $0001;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SECURITY_PROTOCOL_NONE = $0000;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''This is used instead of -1, since the TSocket type is unsigned''
 +
|-
 +
| <code>INVALID_SOCKET = GlobalSock.INVALID_SOCKET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SOCKET_ERROR = GlobalSock.SOCKET_ERROR;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Define constant based on rfc883, used by gethostbyxxxx() calls''
 +
|-
 +
| <code>MAXGETHOSTSTRUCT = GlobalSock.MAXGETHOSTSTRUCT;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WSADESCRIPTION_LEN = GlobalSock.WSADESCRIPTION_LEN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSASYS_STATUS_LEN = GlobalSock.WSASYS_STATUS_LEN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_PROTOCOL_CHAIN = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BASE_PROTOCOL = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LAYERED_PROTOCOL = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAPROTOCOL_LEN = 255;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''IP protocol constants''' <code> IPPROTO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>NAME_</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IPPROTO_IP = GlobalSock.IPPROTO_IP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_ICMP = GlobalSock.IPPROTO_ICMP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_IGMP = GlobalSock.IPPROTO_IGMP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_GGP = GlobalSock.IPPROTO_GGP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_TCP = GlobalSock.IPPROTO_TCP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_EGP = GlobalSock.IPPROTO_EGP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_PUP = GlobalSock.IPPROTO_PUP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_UDP = GlobalSock.IPPROTO_UDP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_HMP = GlobalSock.IPPROTO_HMP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_IDP = GlobalSock.IPPROTO_IDP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_RDP = GlobalSock.IPPROTO_RDP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_IPV6 = GlobalSock.IPPROTO_IPV6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_ROUTING = GlobalSock.IPPROTO_ROUTING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_FRAGMENT = GlobalSock.IPPROTO_FRAGMENT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_ICMPV6 = GlobalSock.IPPROTO_ICMPV6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_RVD = GlobalSock.IPPROTO_RVD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_ND = GlobalSock.IPPROTO_ND;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_RAW = GlobalSock.IPPROTO_RAW;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPROTO_MAX = GlobalSock.IPPROTO_MAX;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''IP port constants''' <code> IPPORT_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Port/socket numbers: network standard functions''
 +
|-
 +
| <code>IPPORT_ANY = GlobalSock.IPPORT_ANY;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IPPORT_ECHO = GlobalSock.IPPORT_ECHO;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_DISCARD = GlobalSock.IPPORT_DISCARD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_SYSTAT = GlobalSock.IPPORT_SYSTAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_DAYTIME = GlobalSock.IPPORT_DAYTIME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_NETSTAT = GlobalSock.IPPORT_NETSTAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_FTP = GlobalSock.IPPORT_FTP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_TELNET = GlobalSock.IPPORT_TELNET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_SMTP = GlobalSock.IPPORT_SMTP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_TIMESERVER = GlobalSock.IPPORT_TIMESERVER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_NAMESERVER = GlobalSock.IPPORT_NAMESERVER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_WHOIS = GlobalSock.IPPORT_WHOIS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_DNS = GlobalSock.IPPORT_DNS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_MTP = GlobalSock.IPPORT_MTP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_BOOTPS = GlobalSock.IPPORT_BOOTPS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_BOOTPC = GlobalSock.IPPORT_BOOTPC;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Port/socket numbers: host specific functions''
 +
|-
 +
| <code>IPPORT_TFTP = GlobalSock.IPPORT_TFTP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_RJE = GlobalSock.IPPORT_RJE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_FINGER = GlobalSock.IPPORT_FINGER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_TTYLINK = GlobalSock.IPPORT_TTYLINK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_SUPDUP = GlobalSock.IPPORT_SUPDUP;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''UNIX TCP sockets''
 +
|-
 +
| <code>IPPORT_EXECSERVER = GlobalSock.IPPORT_EXECSERVER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_LOGINSERVER = GlobalSock.IPPORT_LOGINSERVER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_CMDSERVER = GlobalSock.IPPORT_CMDSERVER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_EFSSERVER = GlobalSock.IPPORT_EFSSERVER;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''UNIX UDP sockets''
 +
|-
 +
| <code>IPPORT_BIFFUDP = GlobalSock.IPPORT_BIFFUDP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_WHOSERVER = GlobalSock.IPPORT_WHOSERVER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IPPORT_ROUTESERVER = GlobalSock.IPPORT_ROUTESERVER;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root)''
 +
|-
 +
| <code>IPPORT_RESERVED = GlobalSock.IPPORT_RESERVED;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''IP option constants''' <code> IP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Options for use with [gs]etsockopt at the IP level
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IP_OPTIONS = GlobalSock.IP_OPTIONS;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IP_MULTICAST_IF = GlobalSock.IP_MULTICAST_IF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_MULTICAST_TTL = GlobalSock.IP_MULTICAST_TTL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_MULTICAST_LOOP = GlobalSock.IP_MULTICAST_LOOP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_ADD_MEMBERSHIP = GlobalSock.IP_ADD_MEMBERSHIP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_DROP_MEMBERSHIP = GlobalSock.IP_DROP_MEMBERSHIP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_TTL = GlobalSock.IP_TTL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_TOS = GlobalSock.IP_TOS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_DONTFRAGMENT = GlobalSock.IP_DONTFRAGMENT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_HDRINCL = GlobalSock.IP_HDRINCL;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IP_DEFAULT_MULTICAST_TTL = GlobalSock.IP_DEFAULT_MULTICAST_TTL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_DEFAULT_MULTICAST_LOOP = GlobalSock.IP_DEFAULT_MULTICAST_LOOP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IP_MAX_MEMBERSHIPS = GlobalSock.IP_MAX_MEMBERSHIPS;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Socket type constants''' <code> SOCK_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SOCK_UNSPEC = GlobalSock.SOCK_UNSPEC;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SOCK_STREAM = GlobalSock.SOCK_STREAM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SOCK_DGRAM = GlobalSock.SOCK_DGRAM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SOCK_RAW = GlobalSock.SOCK_RAW;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SOCK_RDM = GlobalSock.SOCK_RDM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SOCK_SEQPACKET = GlobalSock.SOCK_SEQPACKET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SOCK_PACKET = GlobalSock.SOCK_PACKET;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Socket option constants''' <code> SO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SO_DEBUG = GlobalSock.SO_DEBUG;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SO_ACCEPTCONN = GlobalSock.SO_ACCEPTCONN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_REUSEADDR = GlobalSock.SO_REUSEADDR;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_KEEPALIVE = GlobalSock.SO_KEEPALIVE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_DONTROUTE = GlobalSock.SO_DONTROUTE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_BROADCAST = GlobalSock.SO_BROADCAST;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_USELOOPBACK = GlobalSock.SO_USELOOPBACK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_LINGER = GlobalSock.SO_LINGER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_OOBINLINE = GlobalSock.SO_OOBINLINE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SO_DONTLINGER = GlobalSock.SO_DONTLINGER;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Additional options''
 +
|-
 +
| <code>SO_SNDBUF = GlobalSock.SO_SNDBUF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_RCVBUF = GlobalSock.SO_RCVBUF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_SNDLOWAT = GlobalSock.SO_SNDLOWAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_RCVLOWAT = GlobalSock.SO_RCVLOWAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_SNDTIMEO = GlobalSock.SO_SNDTIMEO;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_RCVTIMEO = GlobalSock.SO_RCVTIMEO;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_ERROR = GlobalSock.SO_ERROR;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_TYPE = GlobalSock.SO_TYPE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_CONNTIMEO = GlobalSock.SO_CONNTIMEO;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Options for connect and disconnect data and options. Used only by non-TCP/IP transports such as DECNet, OSI TP4, etc''
 +
|-
 +
| <code>SO_CONNDATA = GlobalSock.SO_CONNDATA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_CONNOPT = GlobalSock.SO_CONNOPT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_DISCDATA = GlobalSock.SO_DISCDATA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_DISCOPT = GlobalSock.SO_DISCOPT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_CONNDATALEN = GlobalSock.SO_CONNDATALEN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_CONNOPTLEN = GlobalSock.SO_CONNOPTLEN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_DISCDATALEN = GlobalSock.SO_DISCDATALEN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_DISCOPTLEN = GlobalSock.SO_DISCOPTLEN;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Option for opening sockets for synchronous access''
 +
|-
 +
| <code>SO_OPENTYPE = GlobalSock.SO_OPENTYPE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_SYNCHRONOUS_ALERT = GlobalSock.SO_SYNCHRONOUS_ALERT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_SYNCHRONOUS_NONALERT = GlobalSock.SO_SYNCHRONOUS_NONALERT;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Other NT-specific options''
 +
|-
 +
| <code>SO_MAXDG = GlobalSock.SO_MAXDG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_MAXPATHDG = GlobalSock.SO_MAXPATHDG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_UPDATE_ACCEPT_CONTEXT = GlobalSock.SO_UPDATE_ACCEPT_CONTEXT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_CONNECT_TIME = GlobalSock.SO_CONNECT_TIME;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''TCP option constants''' <code> TCP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>TCP_NODELAY= GlobalSock.TCP_NODELAY;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>TCP_MAXSEG = GlobalSock.TCP_MAXSEG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_NOPUSH = GlobalSock.TCP_NOPUSH;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_NOOPT = GlobalSock.TCP_NOOPT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_BSDURGENT = GlobalSock.TCP_BSDURGENT;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>TCP_WSCALE = GlobalSock.TCP_WSCALE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TCP_NOSACK = GlobalSock.TCP_NOSACK;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''UDP option constants''' <code> UDP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>UDP_NOCHECKSUM = GlobalSock.UDP_NOCHECKSUM;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Address family constants''' <code> AF_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>AF_UNSPEC = GlobalSock.AF_UNSPEC;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>AF_UNIX = GlobalSock.AF_UNIX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_INET = GlobalSock.AF_INET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_IMPLINK = GlobalSock.AF_IMPLINK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_PUP = GlobalSock.AF_PUP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_CHAOS = GlobalSock.AF_CHAOS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_IPX = GlobalSock.AF_IPX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_NS = GlobalSock.AF_NS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_ISO = GlobalSock.AF_ISO;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_OSI = GlobalSock.AF_OSI;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_ECMA = GlobalSock.AF_ECMA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_DATAKIT = GlobalSock.AF_DATAKIT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_CCITT = GlobalSock.AF_CCITT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_SNA = GlobalSock.AF_SNA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_DECnet = GlobalSock.AF_DECnet;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_DLI = GlobalSock.AF_DLI;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_LAT = GlobalSock.AF_LAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_HYLINK = GlobalSock.AF_HYLINK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_APPLETALK = GlobalSock.AF_APPLETALK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_NETBIOS = GlobalSock.AF_NETBIOS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_VOICEVIEW = GlobalSock.AF_VOICEVIEW;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_FIREFOX = GlobalSock.AF_FIREFOX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_UNKNOWN1 = GlobalSock.AF_UNKNOWN1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_BAN = GlobalSock.AF_BAN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_ATM = GlobalSock.AF_ATM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_INET6 = GlobalSock.AF_INET6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_CLUSTER = GlobalSock.AF_CLUSTER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_12844 = GlobalSock.AF_12844;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_IRDA = GlobalSock.AF_IRDA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AF_NETDES = GlobalSock.AF_NETDES;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>AF_MAX = GlobalSock.AF_MAX;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Protocol family constants''' <code> PF_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>PF_UNSPEC = GlobalSock.PF_UNSPEC;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>PF_UNIX = GlobalSock.PF_UNIX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_INET = GlobalSock.PF_INET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_IMPLINK = GlobalSock.PF_IMPLINK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_PUP = GlobalSock.PF_PUP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_CHAOS = GlobalSock.PF_CHAOS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_NS = GlobalSock.PF_NS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_IPX = GlobalSock.PF_IPX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_ISO = GlobalSock.PF_ISO;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_OSI = GlobalSock.PF_OSI;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_ECMA = GlobalSock.PF_ECMA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_DATAKIT = GlobalSock.PF_DATAKIT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_CCITT = GlobalSock.PF_CCITT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_SNA = GlobalSock.PF_SNA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_DECnet = GlobalSock.PF_DECnet;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_DLI = GlobalSock.PF_DLI;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_LAT = GlobalSock.PF_LAT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_HYLINK = GlobalSock.PF_HYLINK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_APPLETALK = GlobalSock.PF_APPLETALK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_VOICEVIEW = GlobalSock.PF_VOICEVIEW;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_FIREFOX = GlobalSock.PF_FIREFOX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_UNKNOWN1 = GlobalSock.PF_UNKNOWN1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_BAN = GlobalSock.PF_BAN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_ATM = GlobalSock.PF_ATM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_INET6 = GlobalSock.PF_INET6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_CLUSTER = GlobalSock.PF_CLUSTER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_12844 = GlobalSock.PF_12844;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_IRDA = GlobalSock.PF_IRDA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PF_NETDES = GlobalSock.PF_NETDES;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>PF_MAX = GlobalSock.PF_MAX;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Message flag options ''' <code> MSG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MSG_OOB = GlobalSock.MSG_OOB;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MSG_PEEK = GlobalSock.MSG_PEEK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MSG_DONTROUTE = GlobalSock.MSG_DONTROUTE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>MSG_INTERRUPT = GlobalSock.MSG_INTERRUPT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MSG_MAXIOVLEN = GlobalSock.MSG_MAXIOVLEN;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>MSG_PARTIAL = GlobalSock.MSG_PARTIAL;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''FD option constants''' <code> FD_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- bit values and indices for FD_XXX network events
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FD_READ_BIT = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FD_READ = (1 shl FD_READ_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_WRITE_BIT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_WRITE = (1 shl FD_WRITE_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_OOB_BIT = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_OOB = (1 shl FD_OOB_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_ACCEPT_BIT = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_ACCEPT = (1 shl FD_ACCEPT_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_CONNECT_BIT = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_CONNECT = (1 shl FD_CONNECT_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_CLOSE_BIT = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_CLOSE = (1 shl FD_CLOSE_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_QOS_BIT = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_QOS = (1 shl FD_QOS_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_GROUP_QOS_BIT = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_GROUP_QOS = (1 shl FD_GROUP_QOS_BIT);</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_MAX_EVENTS = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FD_ALL_EVENTS = ((1 shl FD_MAX_EVENTS) - 1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Socket error constants ''' <code> WSAE* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|All Windows Sockets error constants are biased by WSABASEERR from the "normal"
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WSABASEERR = GlobalSock.WSABASEERR;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Windows Sockets definitions of regular Microsoft C error constants''
 +
|-
 +
| <code>WSAEINTR = GlobalSock.WSAEINTR;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEBADF = GlobalSock.WSAEBADF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEACCES = GlobalSock.WSAEACCES;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEFAULT = GlobalSock.WSAEFAULT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEINVAL = GlobalSock.WSAEINVAL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEMFILE = GlobalSock.WSAEMFILE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Windows Sockets definitions of regular Berkeley error constants''
 +
|-
 +
| <code>WSAEWOULDBLOCK = GlobalSock.WSAEWOULDBLOCK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEINPROGRESS = GlobalSock.WSAEINPROGRESS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEALREADY = GlobalSock.WSAEALREADY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENOTSOCK = GlobalSock.WSAENOTSOCK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEDESTADDRREQ = GlobalSock.WSAEDESTADDRREQ;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEMSGSIZE = GlobalSock.WSAEMSGSIZE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEPROTOTYPE = GlobalSock.WSAEPROTOTYPE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENOPROTOOPT = GlobalSock.WSAENOPROTOOPT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEPROTONOSUPPORT = GlobalSock.WSAEPROTONOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAESOCKTNOSUPPORT = GlobalSock.WSAESOCKTNOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEOPNOTSUPP = GlobalSock.WSAEOPNOTSUPP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEPFNOSUPPORT = GlobalSock.WSAEPFNOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEAFNOSUPPORT = GlobalSock.WSAEAFNOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEADDRINUSE = GlobalSock.WSAEADDRINUSE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEADDRNOTAVAIL = GlobalSock.WSAEADDRNOTAVAIL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENETDOWN = GlobalSock.WSAENETDOWN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENETUNREACH = GlobalSock.WSAENETUNREACH;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENETRESET = GlobalSock.WSAENETRESET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAECONNABORTED = GlobalSock.WSAECONNABORTED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAECONNRESET = GlobalSock.WSAECONNRESET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENOBUFS = GlobalSock.WSAENOBUFS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEISCONN = GlobalSock.WSAEISCONN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENOTCONN = GlobalSock.WSAENOTCONN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAESHUTDOWN = GlobalSock.WSAESHUTDOWN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAETOOMANYREFS = GlobalSock.WSAETOOMANYREFS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAETIMEDOUT = GlobalSock.WSAETIMEDOUT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAECONNREFUSED = GlobalSock.WSAECONNREFUSED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAELOOP = GlobalSock.WSAELOOP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENAMETOOLONG = GlobalSock.WSAENAMETOOLONG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEHOSTDOWN = GlobalSock.WSAEHOSTDOWN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEHOSTUNREACH = GlobalSock.WSAEHOSTUNREACH;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAENOTEMPTY = GlobalSock.WSAENOTEMPTY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEPROCLIM = GlobalSock.WSAEPROCLIM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEUSERS = GlobalSock.WSAEUSERS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEDQUOT = GlobalSock.WSAEDQUOT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAESTALE = GlobalSock.WSAESTALE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEREMOTE = GlobalSock.WSAEREMOTE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WSAEDISCON = GlobalSock.WSAEDISCON;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Extended Windows Sockets error constant definitions''
 +
|-
 +
| <code>WSASYSNOTREADY = GlobalSock.WSASYSNOTREADY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAVERNOTSUPPORTED = GlobalSock.WSAVERNOTSUPPORTED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSANOTINITIALISED = GlobalSock.WSANOTINITIALISED;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WSAENOMORE = GlobalSock.WSAENOMORE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAECANCELLED = GlobalSock.WSAECANCELLED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEINVALIDPROCTABLE = GlobalSock.WSAEINVALIDPROCTABLE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEINVALIDPROVIDER = GlobalSock.WSAEINVALIDPROVIDER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEPROVIDERFAILEDINIT = GlobalSock.WSAEPROVIDERFAILEDINIT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSASYSCALLFAILURE = GlobalSock.WSASYSCALLFAILURE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSASERVICE_NOT_FOUND = GlobalSock.WSASERVICE_NOT_FOUND;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSATYPE_NOT_FOUND = GlobalSock.WSATYPE_NOT_FOUND;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_E_NO_MORE = GlobalSock.WSA_E_NO_MORE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_E_CANCELLED = GlobalSock.WSA_E_CANCELLED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSAEREFUSED = GlobalSock.WSAEREFUSED;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Authoritative Answer: Host not found''
 +
|-
 +
| <code>WSAHOST_NOT_FOUND = GlobalSock.WSAHOST_NOT_FOUND;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HOST_NOT_FOUND = GlobalSock.HOST_NOT_FOUND;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Non-Authoritative: Host not found, or SERVERFAIL''
 +
|-
 +
| <code>WSATRY_AGAIN = GlobalSock.WSATRY_AGAIN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TRY_AGAIN = GlobalSock.TRY_AGAIN;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Non recoverable errors, FORMERR, REFUSED, NOTIMP''
 +
|-
 +
| <code>WSANO_RECOVERY = GlobalSock.WSANO_RECOVERY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NO_RECOVERY = GlobalSock.NO_RECOVERY;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Valid name, no data record of requested type''
 +
|-
 +
| <code>WSANO_DATA = GlobalSock.WSANO_DATA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NO_DATA = GlobalSock.NO_DATA;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''no address, look for MX record''
 +
|-
 +
| <code>WSANO_ADDRESS = GlobalSock.WSANO_ADDRESS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NO_ADDRESS = GlobalSock.NO_ADDRESS;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''WinSock 2 extension -- new error codes and type definition''
 +
|-
 +
| <code>WSA_IO_PENDING = GlobalSock.WSA_IO_PENDING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_IO_INCOMPLETE = GlobalSock.WSA_IO_INCOMPLETE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_INVALID_HANDLE = GlobalSock.WSA_INVALID_HANDLE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_INVALID_PARAMETER = GlobalSock.WSA_INVALID_PARAMETER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_NOT_ENOUGH_MEMORY = GlobalSock.WSA_NOT_ENOUGH_MEMORY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_OPERATION_ABORTED = GlobalSock.WSA_OPERATION_ABORTED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_INVALID_EVENT = GlobalSock.WSA_INVALID_EVENT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_MAXIMUM_WAIT_EVENTS = GlobalSock.WSA_MAXIMUM_WAIT_EVENTS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_WAIT_FAILED = GlobalSock.WSA_WAIT_FAILED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_WAIT_EVENT_0 = GlobalSock.WSA_WAIT_EVENT_0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_WAIT_IO_COMPLETION = GlobalSock.WSA_WAIT_IO_COMPLETION;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_WAIT_TIMEOUT = GlobalSock.WSA_WAIT_TIMEOUT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_INFINITE = GlobalSock.WSA_INFINITE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Windows Sockets errors redefined as regular Berkeley error constants. These are commented out in Windows NT to avoid conflicts with errno.h. Use the WSA constants instead.''
 +
|-
 +
| <code>EWOULDBLOCK = GlobalSock.EWOULDBLOCK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EINPROGRESS = GlobalSock.EINPROGRESS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EALREADY = GlobalSock.EALREADY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENOTSOCK = GlobalSock.ENOTSOCK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EDESTADDRREQ = GlobalSock.EDESTADDRREQ;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EMSGSIZE = GlobalSock.EMSGSIZE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EPROTOTYPE = GlobalSock.EPROTOTYPE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENOPROTOOPT = GlobalSock.ENOPROTOOPT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EPROTONOSUPPORT = GlobalSock.EPROTONOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ESOCKTNOSUPPORT = GlobalSock.ESOCKTNOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EOPNOTSUPP = GlobalSock.EOPNOTSUPP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EPFNOSUPPORT = GlobalSock.EPFNOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAFNOSUPPORT = GlobalSock.EAFNOSUPPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EADDRINUSE = GlobalSock.EADDRINUSE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EADDRNOTAVAIL = GlobalSock.EADDRNOTAVAIL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENETDOWN = GlobalSock.ENETDOWN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENETUNREACH = GlobalSock.ENETUNREACH;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENETRESET = GlobalSock.ENETRESET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ECONNABORTED = GlobalSock.ECONNABORTED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ECONNRESET = GlobalSock.ECONNRESET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENOBUFS = GlobalSock.ENOBUFS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EISCONN = GlobalSock.EISCONN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENOTCONN = GlobalSock.ENOTCONN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ESHUTDOWN = GlobalSock.ESHUTDOWN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ETOOMANYREFS = GlobalSock.ETOOMANYREFS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ETIMEDOUT = GlobalSock.ETIMEDOUT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ECONNREFUSED = GlobalSock.ECONNREFUSED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ELOOP = GlobalSock.ELOOP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENAMETOOLONG = GlobalSock.ENAMETOOLONG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EHOSTDOWN = GlobalSock.EHOSTDOWN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EHOSTUNREACH = GlobalSock.EHOSTUNREACH;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENOTEMPTY = GlobalSock.ENOTEMPTY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EPROCLIM = GlobalSock.EPROCLIM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EUSERS = GlobalSock.EUSERS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EDQUOT = GlobalSock.EDQUOT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ESTALE = GlobalSock.ESTALE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EREMOTE = GlobalSock.EREMOTE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ENOTREADY = GlobalSock.ENOTREADY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EVERNOTSUPPORTED = GlobalSock.EVERNOTSUPPORTED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ENOTINITIALISED = GlobalSock.ENOTINITIALISED;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Error codes from getaddrinfo()''
 +
|-
 +
| <code>EAI_AGAIN = GlobalSock.EAI_AGAIN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_BADFLAGS = GlobalSock.EAI_BADFLAGS;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_FAIL = GlobalSock.EAI_FAIL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_FAMILY = GlobalSock.EAI_FAMILY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_MEMORY = GlobalSock.EAI_MEMORY;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_NODATA = GlobalSock.EAI_NODATA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_NONAME = GlobalSock.EAI_NONAME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_SERVICE = GlobalSock.EAI_SERVICE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EAI_SOCKTYPE = GlobalSock.EAI_SOCKTYPE;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>EAI_NODATA = GlobalSock.EAI_NODATA;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Condition function value constants''' <code> CF_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- manifest constants for return values of the condition function
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CF_ACCEPT = $0000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CF_REJECT = $0001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CF_DEFER = $0002;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Shutdown option constants''' <code> SD_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- manifest constants for shutdown()
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SD_RECEIVE = GlobalSock.SD_RECEIVE;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SD_SEND = GlobalSock.SD_SEND;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SD_BOTH = GlobalSock.SD_BOTH;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Socket group constants''' <code> SG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- data type and manifest constants for socket groups
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SG_UNCONSTRAINED_GROUP = $01;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SG_CONSTRAINED_GROUP = $02;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Provider flag constants''' <code> PFL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Flag bit definitions for dwProviderFlags */
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>PFL_MULTIPLE_PROTO_ENTRIES = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>PFL_RECOMMENDED_PROTO_ENTRY = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PFL_HIDDEN = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PFL_MATCHES_PROTOCOL_ZERO = $00000008;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Service flag constants ''' <code> XP1_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|&nbsp;Flag bit definitions for dwServiceFlags1 */
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>XP1_CONNECTIONLESS = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>XP1_GUARANTEED_DELIVERY = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_GUARANTEED_ORDER = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_MESSAGE_ORIENTED = $00000008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_PSEUDO_STREAM = $00000010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_GRACEFUL_CLOSE = $00000020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_EXPEDITED_DATA = $00000040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_CONNECT_DATA = $00000080;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_DISCONNECT_DATA = $00000100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_SUPPORT_BROADCAST = $00000200;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_SUPPORT_MULTIPOINT = $00000400;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_MULTIPOINT_CONTROL_PLANE = $00000800;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_MULTIPOINT_DATA_PLANE = $00001000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_QOS_SUPPORTED = $00002000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_INTERRUPT = $00004000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_UNI_SEND = $00008000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_UNI_RECV = $00010000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_IFS_HANDLES = $00020000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>XP1_PARTIAL_MESSAGE = $00040000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Join leaf option constants ''' <code> JL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- manifest constants for WSAJoinLeaf()
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>JL_SENDER_ONLY = $01;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>JL_RECEIVER_ONLY = $02;</code>
 +
| &nbsp;
 +
|-
 +
| <code>JL_BOTH = $04;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Socket flag constants ''' <code> WSA_FLAG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- manifest constants for WSASocket()
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WSA_FLAG_OVERLAPPED = $01;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>WSA_FLAG_MULTIPOINT_C_ROOT = $02;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_FLAG_MULTIPOINT_C_LEAF = $04;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_FLAG_MULTIPOINT_D_ROOT = $08;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WSA_FLAG_MULTIPOINT_D_LEAF = $10;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Socket IOC option constants ''' <code> IOC_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|WinSock 2 extension -- manifest constants for WSAIoctl()
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IOC_UNIX = $00000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IOC_WS2 = $08000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IOC_PROTOCOL = $10000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IOC_VENDOR = $18000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''SIO option constants ''' <code> SIO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SIO_ASSOCIATE_HANDLE = IOC_IN or IOC_WS2 or 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SIO_ENABLE_CIRCULAR_QUEUEING = IOC_WS2 or 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_FIND_ROUTE = IOC_OUT or IOC_WS2 or 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_FLUSH = IOC_WS2 or 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_GET_BROADCAST_ADDRESS = IOC_OUT or IOC_WS2 or 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT or IOC_WS2 or 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_GET_QOS = IOC_INOUT or IOC_WS2 or 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_GET_GROUP_QOS = IOC_INOUT or IOC_WS2 or 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_MULTIPOINT_LOOPBACK = IOC_IN or IOC_WS2 or 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_MULTICAST_SCOPE = IOC_IN or IOC_WS2 or 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_SET_QOS = IOC_IN or IOC_WS2 or 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_SET_GROUP_QOS = IOC_IN or IOC_WS2 or 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIO_TRANSLATE_HANDLE = IOC_INOUT or IOC_WS2 or 13;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''WinSock 2 extension -- manifest constants for SIO_TRANSLATE_HANDLE ioctl''
 +
|-
 +
| <code>TH_NETDEV = $00000001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TH_TAPI = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Name Space constants''' <code> NS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>NS_ALL = (0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>NS_SAP = (1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_NDS = (2);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_PEER_BROWSE = (3);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>NS_TCPIP_LOCAL = (10);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_TCPIP_HOSTS = (11);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_DNS = (12);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_NETBT = (13);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_WINS = (14);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>NS_NBP = (20);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code> NS_MS = (30);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_STDA = (31);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_NTDS = (32);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>NS_X500 = (40);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_NIS = (41);</code>
 +
| &nbsp;
 +
|-
 +
| <code>NS_NISPLUS = (42);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>NS_WRQ = (50);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Resolution flag constants ''' <code> RES_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Resolution flags for WSAGetAddressByName() Note these are also used by the 1.1 API GetAddressByName, so leave them around.
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>RES_UNUSED_1 = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>RES_FLUSH_CACHE = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RES_SERVICE = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Service type value constants''' <code> SERVICE_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Well known value names for Service Types
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_IPXPORTA = 'IpxSocket';</code>
 +
| SERVICE_TYPE_VALUE_IPXPORTW : PWideChar = 'IpxSocket';
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_SAPIDA = 'SapId';</code>
 +
| SERVICE_TYPE_VALUE_SAPIDW : PWideChar = 'SapId';
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_TCPPORTA = 'TcpPort';</code>
 +
| SERVICE_TYPE_VALUE_TCPPORTW : PWideChar = 'TcpPort';
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_UDPPORTA = 'UdpPort';</code>
 +
| SERVICE_TYPE_VALUE_UDPPORTW : PWideChar = 'UdpPort';
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_OBJECTIDA = 'ObjectId';</code>
 +
| SERVICE_TYPE_VALUE_OBJECTIDW : PWideChar = 'ObjectId';
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERVICE_TYPE_VALUE_OBJECTID = SERVICE_TYPE_VALUE_OBJECTIDA;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''WinSock 2 extension -- WSABUF and QOS struct, include qos.h to pull in FLOWSPEC and related definitions''
 +
|-
 +
| <code>SERVICETYPE_NOTRAFFIC = $00000000;</code>
 +
| No data in this direction
 +
|-
 +
| <code>SERVICETYPE_BESTEFFORT = $00000001;</code>
 +
| Best Effort
 +
|-
 +
| <code>SERVICETYPE_CONTROLLEDLOAD = $00000002;</code>
 +
| Controlled Load
 +
|-
 +
| <code>SERVICETYPE_GUARANTEED = $00000003;</code>
 +
| Guaranteed
 +
|-
 +
| <code>SERVICETYPE_NETWORK_UNAVAILABLE = $00000004;</code>
 +
| Used to notify change to user
 +
|-
 +
| <code>SERVICETYPE_GENERAL_INFORMATION = $00000005;</code>
 +
| Corresponds to "General Parameters" defined by IntServ
 +
|-
 +
| <code>SERVICETYPE_NOCHANGE = $00000006;</code>
 +
| Used to indicate that the flow spec contains no change from any previous one
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERVICE_IMMEDIATE_TRAFFIC_CONTROL = $80000000;</code>
 +
| To turn on immediate traffic control, OR this flag with the ServiceType field in teh FLOWSPEC
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''LUP option constants''' <code> LUP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LUP_DEEP = $0001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>LUP_CONTAINERS = $0002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_NOCONTAINERS = $0004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_NEAREST = $0008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_NAME = $0010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_TYPE = $0020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_VERSION = $0040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_COMMENT = $0080;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_ADDR = $0100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_BLOB = $0200;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_ALIASES = $0400;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_QUERY_STRING = $0800;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RETURN_ALL = $0FF0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_RES_SERVICE = $8000;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>LUP_FLUSHCACHE = $1000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LUP_FLUSHPREVIOUS = $2000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NAME_</code>
 +
| &nbsp;
 +
|-
 +
| <code>NAME_</code>
 +
| &nbsp;
 +
|-
 +
| <code>NAME_</code>
 +
| &nbsp;
 +
|-
 +
| <code>NAME_</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Address info flag constants''' <code> AI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Flags used in "hints" argument to getaddrinfo()
 +
|-
 +
|colspan="2"|Note: Under Linux these values may be different
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>AI_PASSIVE = GlobalSock.AI_PASSIVE;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>AI_CANONNAME = GlobalSock.AI_CANONNAME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_NUMERICHOST = GlobalSock.AI_NUMERICHOST;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_NUMERICSERV = GlobalSock.AI_NUMERICSERV;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_ALL = GlobalSock.AI_ALL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_ADDRCONFIG = GlobalSock.AI_ADDRCONFIG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_V4MAPPED = GlobalSock.AI_V4MAPPED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_NON_AUTHORITATIVE = GlobalSock.AI_NON_AUTHORITATIVE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_SECURE = GlobalSock.AI_SECURE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_RETURN_PREFERRED_NAMES = GlobalSock.AI_RETURN_PREFERRED_NAMES;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_FQDN = GlobalSock.AI_FQDN;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AI_FILESERVER = GlobalSock.AI_FILESERVER;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Name info flag constants''' <code> NI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Flags for getnameinfo()
 +
|-
 +
| <code>NI_NOFQDN = GlobalSock.NI_NOFQDN;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>NI_NUMERICHOST = GlobalSock.NI_NUMERICHOST;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NI_NAMEREQD = GlobalSock.NI_NAMEREQD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NI_NUMERICSERV = GlobalSock.NI_NUMERICSERV;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NI_DGRAM = GlobalSock.NI_DGRAM;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>NI_MAXHOST = GlobalSock.NI_MAXHOST;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NI_MAXSERV = GlobalSock.NI_MAXSERV;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===

Revision as of 04:33, 24 December 2016

Return to Unit Reference


Description


Ultibo Winsock2 interface unit

Notes:

  • All BSD/Winsock functions that accept an Address or Port expect them to be in Network order.
  • All other functions that take an Address or Port expect them to be in Host order.

Constants



Winsock2 specific constants WINSOCK_*
WINSOCK_VERSION = $0202;  
 
WINSOCK_TCP_SERVER_THREAD_NAME = 'TCP Server'; Thread name for TCP server threads
WINSOCK_TCP_SERVER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL; Thread priority for TCP server threads
 
WINSOCK_TCP_LISTENER_THREAD_NAME = 'TCP Listener'; Thread name for TCP listener threads
WINSOCK_TCP_LISTENER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL; Thread priority for TCP listener threads
 
WINSOCK_UDP_SERVER_THREAD_NAME = 'UDP Server'; Thread name for UDP server threads
WINSOCK_UDP_SERVER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL; Thread priority for UDP server threads
 
WINSOCK_UDP_LISTENER_THREAD_NAME = 'UDP Listener'; Thread name for UDP listener threads
WINSOCK_UDP_LISTENER_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL; Thread priority for UDP listener threads
 
FD_SETSIZE = GlobalSock.FD_SETSIZE;  
 
IOCPARM_MASK = GlobalSock.IOCPARM_MASK;  
IOC_VOID = GlobalSock.IOC_VOID;  
IOC_OUT = GlobalSock.IOC_OUT;  
IOC_IN = GlobalSock.IOC_IN;  
IOC_INOUT = GlobalSock.IOC_INOUT;  
 
FIONREAD = GlobalSock.FIONREAD;  
FIONBIO = GlobalSock.FIONBIO;  
FIOASYNC = GlobalSock.FIOASYNC;  
 
SIOCSHIWAT = GlobalSock.SIOCSHIWAT;  
SIOCGHIWAT = GlobalSock.SIOCGHIWAT;  
SIOCSLOWAT = GlobalSock.SIOCSLOWAT;  
SIOCGLOWAT = GlobalSock.SIOCGLOWAT;  
SIOCATMARK = GlobalSock.SIOCATMARK;  
 
IMPLINK_IP = GlobalSock.IMPLINK_IP;  
IMPLINK_LOWEXPER = GlobalSock.IMPLINK_LOWEXPER;  
IMPLINK_HIGHEXPER = GlobalSock.IMPLINK_HIGHEXPER;  
 
TF_DISCONNECT = GlobalSock.TF_DISCONNECT;  
TF_REUSE_SOCKET = GlobalSock.TF_REUSE_SOCKET;  
TF_WRITE_BEHIND = GlobalSock.TF_WRITE_BEHIND;  
 
INET_ADDRSTR_ANY = GlobalSock.INET_ADDRSTR_ANY;  
INET6_ADDRSTR_INIT = GlobalSock.INET6_ADDRSTR_INIT;  
 
INET_ADDRSTR_BROADCAST = GlobalSock.INET_ADDRSTR_BROADCAST;  
 
INET_ADDRSTRLEN = GlobalSock.INET_ADDRSTRLEN;  
INET6_ADDRSTRLEN = GlobalSock.INET6_ADDRSTRLEN;  
 
IN6ADDR_ANY_INIT:TIn6Addr = (u6_addr16: (0, 0, 0, 0, 0, 0, 0, 0));  
IN6ADDR_LOOPBACK_INIT:TIn6Addr = (u6_addr8: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));  
 
INADDR_ANY = GlobalSock.INADDR_ANY;  
INADDR_LOOPBACK = GlobalSock.INADDR_LOOPBACK;  
INADDR_BROADCAST = GlobalSock.INADDR_BROADCAST;  
INADDR_NONE = GlobalSock.INADDR_NONE;  
 
IN6ADDR_ANY:TIn6Addr = (u6_addr16: (0, 0, 0, 0, 0, 0, 0, 0));  
IN6ADDR_LOOPBACK:TIn6Addr = (u6_addr8: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));  
 
Level number for (get/set)sockopt() to apply to socket itself
SOL_SOCKET = GlobalSock.SOL_SOCKET;  
 
Maximum queue length specifiable by listen
SOMAXCONN = $7fffffff; SOMAXCONN = GlobalSock.SOMAXCONN; (Redefined for Winsock2)
 
Return flags
RESULT_IS_ALIAS = $0001;  
 
SERVICE_MULTIPLE = $00000001;  
 
BIGENDIAN = $0000;  
LITTLEENDIAN = $0001;  
 
SECURITY_PROTOCOL_NONE = $0000;  
 
This is used instead of -1, since the TSocket type is unsigned
INVALID_SOCKET = GlobalSock.INVALID_SOCKET;  
SOCKET_ERROR = GlobalSock.SOCKET_ERROR;  
 
Define constant based on rfc883, used by gethostbyxxxx() calls
MAXGETHOSTSTRUCT = GlobalSock.MAXGETHOSTSTRUCT;  
 
WSADESCRIPTION_LEN = GlobalSock.WSADESCRIPTION_LEN;  
WSASYS_STATUS_LEN = GlobalSock.WSASYS_STATUS_LEN;  
MAX_PROTOCOL_CHAIN = 7;  
BASE_PROTOCOL = 1;  
LAYERED_PROTOCOL = 0;  
WSAPROTOCOL_LEN = 255;  


IP protocol constants IPPROTO_*
NAME_  
IPPROTO_IP = GlobalSock.IPPROTO_IP;  
IPPROTO_ICMP = GlobalSock.IPPROTO_ICMP;  
IPPROTO_IGMP = GlobalSock.IPPROTO_IGMP;  
IPPROTO_GGP = GlobalSock.IPPROTO_GGP;  
IPPROTO_TCP = GlobalSock.IPPROTO_TCP;  
IPPROTO_EGP = GlobalSock.IPPROTO_EGP;  
IPPROTO_PUP = GlobalSock.IPPROTO_PUP;  
IPPROTO_UDP = GlobalSock.IPPROTO_UDP;  
IPPROTO_HMP = GlobalSock.IPPROTO_HMP;  
IPPROTO_IDP = GlobalSock.IPPROTO_IDP;  
IPPROTO_RDP = GlobalSock.IPPROTO_RDP;  
IPPROTO_IPV6 = GlobalSock.IPPROTO_IPV6;  
IPPROTO_ROUTING = GlobalSock.IPPROTO_ROUTING;  
IPPROTO_FRAGMENT = GlobalSock.IPPROTO_FRAGMENT;  
IPPROTO_ICMPV6 = GlobalSock.IPPROTO_ICMPV6;  
IPPROTO_RVD = GlobalSock.IPPROTO_RVD;  
IPPROTO_ND = GlobalSock.IPPROTO_ND;  
IPPROTO_RAW = GlobalSock.IPPROTO_RAW;  
IPPROTO_MAX = GlobalSock.IPPROTO_MAX;  


IP port constants IPPORT_*
Port/socket numbers: network standard functions
IPPORT_ANY = GlobalSock.IPPORT_ANY;  
IPPORT_ECHO = GlobalSock.IPPORT_ECHO;  
IPPORT_DISCARD = GlobalSock.IPPORT_DISCARD;  
IPPORT_SYSTAT = GlobalSock.IPPORT_SYSTAT;  
IPPORT_DAYTIME = GlobalSock.IPPORT_DAYTIME;  
IPPORT_NETSTAT = GlobalSock.IPPORT_NETSTAT;  
IPPORT_FTP = GlobalSock.IPPORT_FTP;  
IPPORT_TELNET = GlobalSock.IPPORT_TELNET;  
IPPORT_SMTP = GlobalSock.IPPORT_SMTP;  
IPPORT_TIMESERVER = GlobalSock.IPPORT_TIMESERVER;  
IPPORT_NAMESERVER = GlobalSock.IPPORT_NAMESERVER;  
IPPORT_WHOIS = GlobalSock.IPPORT_WHOIS;  
IPPORT_DNS = GlobalSock.IPPORT_DNS;  
IPPORT_MTP = GlobalSock.IPPORT_MTP;  
IPPORT_BOOTPS = GlobalSock.IPPORT_BOOTPS;  
IPPORT_BOOTPC = GlobalSock.IPPORT_BOOTPC;  
 
Port/socket numbers: host specific functions
IPPORT_TFTP = GlobalSock.IPPORT_TFTP;  
IPPORT_RJE = GlobalSock.IPPORT_RJE;  
IPPORT_FINGER = GlobalSock.IPPORT_FINGER;  
IPPORT_TTYLINK = GlobalSock.IPPORT_TTYLINK;  
IPPORT_SUPDUP = GlobalSock.IPPORT_SUPDUP;  
 
UNIX TCP sockets
IPPORT_EXECSERVER = GlobalSock.IPPORT_EXECSERVER;  
IPPORT_LOGINSERVER = GlobalSock.IPPORT_LOGINSERVER;  
IPPORT_CMDSERVER = GlobalSock.IPPORT_CMDSERVER;  
IPPORT_EFSSERVER = GlobalSock.IPPORT_EFSSERVER;  
 
UNIX UDP sockets
IPPORT_BIFFUDP = GlobalSock.IPPORT_BIFFUDP;  
IPPORT_WHOSERVER = GlobalSock.IPPORT_WHOSERVER;  
IPPORT_ROUTESERVER = GlobalSock.IPPORT_ROUTESERVER;  
 
Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root)
IPPORT_RESERVED = GlobalSock.IPPORT_RESERVED;  


IP option constants IP_*
Options for use with [gs]etsockopt at the IP level
 
IP_OPTIONS = GlobalSock.IP_OPTIONS;  
IP_MULTICAST_IF = GlobalSock.IP_MULTICAST_IF;  
IP_MULTICAST_TTL = GlobalSock.IP_MULTICAST_TTL;  
IP_MULTICAST_LOOP = GlobalSock.IP_MULTICAST_LOOP;  
IP_ADD_MEMBERSHIP = GlobalSock.IP_ADD_MEMBERSHIP;  
IP_DROP_MEMBERSHIP = GlobalSock.IP_DROP_MEMBERSHIP;  
IP_TTL = GlobalSock.IP_TTL;  
IP_TOS = GlobalSock.IP_TOS;  
IP_DONTFRAGMENT = GlobalSock.IP_DONTFRAGMENT;  
IP_HDRINCL = GlobalSock.IP_HDRINCL;  
 
IP_DEFAULT_MULTICAST_TTL = GlobalSock.IP_DEFAULT_MULTICAST_TTL;  
IP_DEFAULT_MULTICAST_LOOP = GlobalSock.IP_DEFAULT_MULTICAST_LOOP;  
IP_MAX_MEMBERSHIPS = GlobalSock.IP_MAX_MEMBERSHIPS;  


Socket type constants SOCK_*
SOCK_UNSPEC = GlobalSock.SOCK_UNSPEC;  
SOCK_STREAM = GlobalSock.SOCK_STREAM;  
SOCK_DGRAM = GlobalSock.SOCK_DGRAM;  
SOCK_RAW = GlobalSock.SOCK_RAW;  
SOCK_RDM = GlobalSock.SOCK_RDM;  
SOCK_SEQPACKET = GlobalSock.SOCK_SEQPACKET;  
SOCK_PACKET = GlobalSock.SOCK_PACKET;  


Socket option constants SO_*
SO_DEBUG = GlobalSock.SO_DEBUG;  
SO_ACCEPTCONN = GlobalSock.SO_ACCEPTCONN;  
SO_REUSEADDR = GlobalSock.SO_REUSEADDR;  
SO_KEEPALIVE = GlobalSock.SO_KEEPALIVE;  
SO_DONTROUTE = GlobalSock.SO_DONTROUTE;  
SO_BROADCAST = GlobalSock.SO_BROADCAST;  
SO_USELOOPBACK = GlobalSock.SO_USELOOPBACK;  
SO_LINGER = GlobalSock.SO_LINGER;  
SO_OOBINLINE = GlobalSock.SO_OOBINLINE;  
 
SO_DONTLINGER = GlobalSock.SO_DONTLINGER;  
 
Additional options
SO_SNDBUF = GlobalSock.SO_SNDBUF;  
SO_RCVBUF = GlobalSock.SO_RCVBUF;  
SO_SNDLOWAT = GlobalSock.SO_SNDLOWAT;  
SO_RCVLOWAT = GlobalSock.SO_RCVLOWAT;  
SO_SNDTIMEO = GlobalSock.SO_SNDTIMEO;  
SO_RCVTIMEO = GlobalSock.SO_RCVTIMEO;  
SO_ERROR = GlobalSock.SO_ERROR;  
SO_TYPE = GlobalSock.SO_TYPE;  
SO_CONNTIMEO = GlobalSock.SO_CONNTIMEO;  
 
Options for connect and disconnect data and options. Used only by non-TCP/IP transports such as DECNet, OSI TP4, etc
SO_CONNDATA = GlobalSock.SO_CONNDATA;  
SO_CONNOPT = GlobalSock.SO_CONNOPT;  
SO_DISCDATA = GlobalSock.SO_DISCDATA;  
SO_DISCOPT = GlobalSock.SO_DISCOPT;  
SO_CONNDATALEN = GlobalSock.SO_CONNDATALEN;  
SO_CONNOPTLEN = GlobalSock.SO_CONNOPTLEN;  
SO_DISCDATALEN = GlobalSock.SO_DISCDATALEN;  
SO_DISCOPTLEN = GlobalSock.SO_DISCOPTLEN;  
 
Option for opening sockets for synchronous access
SO_OPENTYPE = GlobalSock.SO_OPENTYPE;  
SO_SYNCHRONOUS_ALERT = GlobalSock.SO_SYNCHRONOUS_ALERT;  
SO_SYNCHRONOUS_NONALERT = GlobalSock.SO_SYNCHRONOUS_NONALERT;  
 
Other NT-specific options
SO_MAXDG = GlobalSock.SO_MAXDG;  
SO_MAXPATHDG = GlobalSock.SO_MAXPATHDG;  
SO_UPDATE_ACCEPT_CONTEXT = GlobalSock.SO_UPDATE_ACCEPT_CONTEXT;  
SO_CONNECT_TIME = GlobalSock.SO_CONNECT_TIME;  


TCP option constants TCP_*
TCP_NODELAY= GlobalSock.TCP_NODELAY;  
TCP_MAXSEG = GlobalSock.TCP_MAXSEG;  
TCP_NOPUSH = GlobalSock.TCP_NOPUSH;  
TCP_NOOPT = GlobalSock.TCP_NOOPT;  
TCP_BSDURGENT = GlobalSock.TCP_BSDURGENT;  
 
TCP_WSCALE = GlobalSock.TCP_WSCALE;  
TCP_NOSACK = GlobalSock.TCP_NOSACK;  


UDP option constants UDP_*
UDP_NOCHECKSUM = GlobalSock.UDP_NOCHECKSUM;  


Address family constants AF_*
AF_UNSPEC = GlobalSock.AF_UNSPEC;  
AF_UNIX = GlobalSock.AF_UNIX;  
AF_INET = GlobalSock.AF_INET;  
AF_IMPLINK = GlobalSock.AF_IMPLINK;  
AF_PUP = GlobalSock.AF_PUP;  
AF_CHAOS = GlobalSock.AF_CHAOS;  
AF_IPX = GlobalSock.AF_IPX;  
AF_NS = GlobalSock.AF_NS;  
AF_ISO = GlobalSock.AF_ISO;  
AF_OSI = GlobalSock.AF_OSI;  
AF_ECMA = GlobalSock.AF_ECMA;  
AF_DATAKIT = GlobalSock.AF_DATAKIT;  
AF_CCITT = GlobalSock.AF_CCITT;  
AF_SNA = GlobalSock.AF_SNA;  
AF_DECnet = GlobalSock.AF_DECnet;  
AF_DLI = GlobalSock.AF_DLI;  
AF_LAT = GlobalSock.AF_LAT;  
AF_HYLINK = GlobalSock.AF_HYLINK;  
AF_APPLETALK = GlobalSock.AF_APPLETALK;  
AF_NETBIOS = GlobalSock.AF_NETBIOS;  
AF_VOICEVIEW = GlobalSock.AF_VOICEVIEW;  
AF_FIREFOX = GlobalSock.AF_FIREFOX;  
AF_UNKNOWN1 = GlobalSock.AF_UNKNOWN1;  
AF_BAN = GlobalSock.AF_BAN;  
AF_ATM = GlobalSock.AF_ATM;  
AF_INET6 = GlobalSock.AF_INET6;  
AF_CLUSTER = GlobalSock.AF_CLUSTER;  
AF_12844 = GlobalSock.AF_12844;  
AF_IRDA = GlobalSock.AF_IRDA;  
AF_NETDES = GlobalSock.AF_NETDES;  
 
AF_MAX = GlobalSock.AF_MAX;  


Protocol family constants PF_*
PF_UNSPEC = GlobalSock.PF_UNSPEC;  
PF_UNIX = GlobalSock.PF_UNIX;  
PF_INET = GlobalSock.PF_INET;  
PF_IMPLINK = GlobalSock.PF_IMPLINK;  
PF_PUP = GlobalSock.PF_PUP;  
PF_CHAOS = GlobalSock.PF_CHAOS;  
PF_NS = GlobalSock.PF_NS;  
PF_IPX = GlobalSock.PF_IPX;  
PF_ISO = GlobalSock.PF_ISO;  
PF_OSI = GlobalSock.PF_OSI;  
PF_ECMA = GlobalSock.PF_ECMA;  
PF_DATAKIT = GlobalSock.PF_DATAKIT;  
PF_CCITT = GlobalSock.PF_CCITT;  
PF_SNA = GlobalSock.PF_SNA;  
PF_DECnet = GlobalSock.PF_DECnet;  
PF_DLI = GlobalSock.PF_DLI;  
PF_LAT = GlobalSock.PF_LAT;  
PF_HYLINK = GlobalSock.PF_HYLINK;  
PF_APPLETALK = GlobalSock.PF_APPLETALK;  
PF_VOICEVIEW = GlobalSock.PF_VOICEVIEW;  
PF_FIREFOX = GlobalSock.PF_FIREFOX;  
PF_UNKNOWN1 = GlobalSock.PF_UNKNOWN1;  
PF_BAN = GlobalSock.PF_BAN;  
PF_ATM = GlobalSock.PF_ATM;  
PF_INET6 = GlobalSock.PF_INET6;  
PF_CLUSTER = GlobalSock.PF_CLUSTER;  
PF_12844 = GlobalSock.PF_12844;  
PF_IRDA = GlobalSock.PF_IRDA;  
PF_NETDES = GlobalSock.PF_NETDES;  
 
PF_MAX = GlobalSock.PF_MAX;  


Message flag options MSG_*
MSG_OOB = GlobalSock.MSG_OOB;  
MSG_PEEK = GlobalSock.MSG_PEEK;  
MSG_DONTROUTE = GlobalSock.MSG_DONTROUTE;  
 
MSG_INTERRUPT = GlobalSock.MSG_INTERRUPT;  
MSG_MAXIOVLEN = GlobalSock.MSG_MAXIOVLEN;  
 
MSG_PARTIAL = GlobalSock.MSG_PARTIAL;  


FD option constants FD_*
WinSock 2 extension -- bit values and indices for FD_XXX network events
 
FD_READ_BIT = 0;  
FD_READ = (1 shl FD_READ_BIT);  
FD_WRITE_BIT = 1;  
FD_WRITE = (1 shl FD_WRITE_BIT);  
FD_OOB_BIT = 2;  
FD_OOB = (1 shl FD_OOB_BIT);  
FD_ACCEPT_BIT = 3;  
FD_ACCEPT = (1 shl FD_ACCEPT_BIT);  
FD_CONNECT_BIT = 4;  
FD_CONNECT = (1 shl FD_CONNECT_BIT);  
FD_CLOSE_BIT = 5;  
FD_CLOSE = (1 shl FD_CLOSE_BIT);  
FD_QOS_BIT = 6;  
FD_QOS = (1 shl FD_QOS_BIT);  
FD_GROUP_QOS_BIT = 7;  
FD_GROUP_QOS = (1 shl FD_GROUP_QOS_BIT);  
FD_MAX_EVENTS = 8;  
FD_ALL_EVENTS = ((1 shl FD_MAX_EVENTS) - 1);  


Socket error constants WSAE*
All Windows Sockets error constants are biased by WSABASEERR from the "normal"
 
WSABASEERR = GlobalSock.WSABASEERR;  
 
Windows Sockets definitions of regular Microsoft C error constants
WSAEINTR = GlobalSock.WSAEINTR;  
WSAEBADF = GlobalSock.WSAEBADF;  
WSAEACCES = GlobalSock.WSAEACCES;  
WSAEFAULT = GlobalSock.WSAEFAULT;  
WSAEINVAL = GlobalSock.WSAEINVAL;  
WSAEMFILE = GlobalSock.WSAEMFILE;  
 
Windows Sockets definitions of regular Berkeley error constants
WSAEWOULDBLOCK = GlobalSock.WSAEWOULDBLOCK;  
WSAEINPROGRESS = GlobalSock.WSAEINPROGRESS;  
WSAEALREADY = GlobalSock.WSAEALREADY;  
WSAENOTSOCK = GlobalSock.WSAENOTSOCK;  
WSAEDESTADDRREQ = GlobalSock.WSAEDESTADDRREQ;  
WSAEMSGSIZE = GlobalSock.WSAEMSGSIZE;  
WSAEPROTOTYPE = GlobalSock.WSAEPROTOTYPE;  
WSAENOPROTOOPT = GlobalSock.WSAENOPROTOOPT;  
WSAEPROTONOSUPPORT = GlobalSock.WSAEPROTONOSUPPORT;  
WSAESOCKTNOSUPPORT = GlobalSock.WSAESOCKTNOSUPPORT;  
WSAEOPNOTSUPP = GlobalSock.WSAEOPNOTSUPP;  
WSAEPFNOSUPPORT = GlobalSock.WSAEPFNOSUPPORT;  
WSAEAFNOSUPPORT = GlobalSock.WSAEAFNOSUPPORT;  
WSAEADDRINUSE = GlobalSock.WSAEADDRINUSE;  
WSAEADDRNOTAVAIL = GlobalSock.WSAEADDRNOTAVAIL;  
WSAENETDOWN = GlobalSock.WSAENETDOWN;  
WSAENETUNREACH = GlobalSock.WSAENETUNREACH;  
WSAENETRESET = GlobalSock.WSAENETRESET;  
WSAECONNABORTED = GlobalSock.WSAECONNABORTED;  
WSAECONNRESET = GlobalSock.WSAECONNRESET;  
WSAENOBUFS = GlobalSock.WSAENOBUFS;  
WSAEISCONN = GlobalSock.WSAEISCONN;  
WSAENOTCONN = GlobalSock.WSAENOTCONN;  
WSAESHUTDOWN = GlobalSock.WSAESHUTDOWN;  
WSAETOOMANYREFS = GlobalSock.WSAETOOMANYREFS;  
WSAETIMEDOUT = GlobalSock.WSAETIMEDOUT;  
WSAECONNREFUSED = GlobalSock.WSAECONNREFUSED;  
WSAELOOP = GlobalSock.WSAELOOP;  
WSAENAMETOOLONG = GlobalSock.WSAENAMETOOLONG;  
WSAEHOSTDOWN = GlobalSock.WSAEHOSTDOWN;  
WSAEHOSTUNREACH = GlobalSock.WSAEHOSTUNREACH;  
WSAENOTEMPTY = GlobalSock.WSAENOTEMPTY;  
WSAEPROCLIM = GlobalSock.WSAEPROCLIM;  
WSAEUSERS = GlobalSock.WSAEUSERS;  
WSAEDQUOT = GlobalSock.WSAEDQUOT;  
WSAESTALE = GlobalSock.WSAESTALE;  
WSAEREMOTE = GlobalSock.WSAEREMOTE;  
 
WSAEDISCON = GlobalSock.WSAEDISCON;  
 
Extended Windows Sockets error constant definitions
WSASYSNOTREADY = GlobalSock.WSASYSNOTREADY;  
WSAVERNOTSUPPORTED = GlobalSock.WSAVERNOTSUPPORTED;  
WSANOTINITIALISED = GlobalSock.WSANOTINITIALISED;  
 
WSAENOMORE = GlobalSock.WSAENOMORE;  
WSAECANCELLED = GlobalSock.WSAECANCELLED;  
WSAEINVALIDPROCTABLE = GlobalSock.WSAEINVALIDPROCTABLE;  
WSAEINVALIDPROVIDER = GlobalSock.WSAEINVALIDPROVIDER;  
WSAEPROVIDERFAILEDINIT = GlobalSock.WSAEPROVIDERFAILEDINIT;  
WSASYSCALLFAILURE = GlobalSock.WSASYSCALLFAILURE;  
WSASERVICE_NOT_FOUND = GlobalSock.WSASERVICE_NOT_FOUND;  
WSATYPE_NOT_FOUND = GlobalSock.WSATYPE_NOT_FOUND;  
WSA_E_NO_MORE = GlobalSock.WSA_E_NO_MORE;  
WSA_E_CANCELLED = GlobalSock.WSA_E_CANCELLED;  
WSAEREFUSED = GlobalSock.WSAEREFUSED;  
 
Error return codes from gethostbyname() and gethostbyaddr() (when using the resolver). Note that these errors are retrieved via WSAGetLastError() and must therefore follow the rules for avoiding clashes with error numbers from specific implementations or language run-time systems. For this reason the codes are based at WSABASEERR+1001. Note also that [WSA]NO_ADDRESS is defined only for compatibility purposes.
 
Authoritative Answer: Host not found
WSAHOST_NOT_FOUND = GlobalSock.WSAHOST_NOT_FOUND;  
HOST_NOT_FOUND = GlobalSock.HOST_NOT_FOUND;  
 
Non-Authoritative: Host not found, or SERVERFAIL
WSATRY_AGAIN = GlobalSock.WSATRY_AGAIN;  
TRY_AGAIN = GlobalSock.TRY_AGAIN;  
 
Non recoverable errors, FORMERR, REFUSED, NOTIMP
WSANO_RECOVERY = GlobalSock.WSANO_RECOVERY;  
NO_RECOVERY = GlobalSock.NO_RECOVERY;  
 
Valid name, no data record of requested type
WSANO_DATA = GlobalSock.WSANO_DATA;  
NO_DATA = GlobalSock.NO_DATA;  
 
no address, look for MX record
WSANO_ADDRESS = GlobalSock.WSANO_ADDRESS;  
NO_ADDRESS = GlobalSock.NO_ADDRESS;  
 
WinSock 2 extension -- new error codes and type definition
WSA_IO_PENDING = GlobalSock.WSA_IO_PENDING;  
WSA_IO_INCOMPLETE = GlobalSock.WSA_IO_INCOMPLETE;  
WSA_INVALID_HANDLE = GlobalSock.WSA_INVALID_HANDLE;  
WSA_INVALID_PARAMETER = GlobalSock.WSA_INVALID_PARAMETER;  
WSA_NOT_ENOUGH_MEMORY = GlobalSock.WSA_NOT_ENOUGH_MEMORY;  
WSA_OPERATION_ABORTED = GlobalSock.WSA_OPERATION_ABORTED;  
WSA_INVALID_EVENT = GlobalSock.WSA_INVALID_EVENT;  
WSA_MAXIMUM_WAIT_EVENTS = GlobalSock.WSA_MAXIMUM_WAIT_EVENTS;  
WSA_WAIT_FAILED = GlobalSock.WSA_WAIT_FAILED;  
WSA_WAIT_EVENT_0 = GlobalSock.WSA_WAIT_EVENT_0;  
WSA_WAIT_IO_COMPLETION = GlobalSock.WSA_WAIT_IO_COMPLETION;  
WSA_WAIT_TIMEOUT = GlobalSock.WSA_WAIT_TIMEOUT;  
WSA_INFINITE = GlobalSock.WSA_INFINITE;  
 
Windows Sockets errors redefined as regular Berkeley error constants. These are commented out in Windows NT to avoid conflicts with errno.h. Use the WSA constants instead.
EWOULDBLOCK = GlobalSock.EWOULDBLOCK;  
EINPROGRESS = GlobalSock.EINPROGRESS;  
EALREADY = GlobalSock.EALREADY;  
ENOTSOCK = GlobalSock.ENOTSOCK;  
EDESTADDRREQ = GlobalSock.EDESTADDRREQ;  
EMSGSIZE = GlobalSock.EMSGSIZE;  
EPROTOTYPE = GlobalSock.EPROTOTYPE;  
ENOPROTOOPT = GlobalSock.ENOPROTOOPT;  
EPROTONOSUPPORT = GlobalSock.EPROTONOSUPPORT;  
ESOCKTNOSUPPORT = GlobalSock.ESOCKTNOSUPPORT;  
EOPNOTSUPP = GlobalSock.EOPNOTSUPP;  
EPFNOSUPPORT = GlobalSock.EPFNOSUPPORT;  
EAFNOSUPPORT = GlobalSock.EAFNOSUPPORT;  
EADDRINUSE = GlobalSock.EADDRINUSE;  
EADDRNOTAVAIL = GlobalSock.EADDRNOTAVAIL;  
ENETDOWN = GlobalSock.ENETDOWN;  
ENETUNREACH = GlobalSock.ENETUNREACH;  
ENETRESET = GlobalSock.ENETRESET;  
ECONNABORTED = GlobalSock.ECONNABORTED;  
ECONNRESET = GlobalSock.ECONNRESET;  
ENOBUFS = GlobalSock.ENOBUFS;  
EISCONN = GlobalSock.EISCONN;  
ENOTCONN = GlobalSock.ENOTCONN;  
ESHUTDOWN = GlobalSock.ESHUTDOWN;  
ETOOMANYREFS = GlobalSock.ETOOMANYREFS;  
ETIMEDOUT = GlobalSock.ETIMEDOUT;  
ECONNREFUSED = GlobalSock.ECONNREFUSED;  
ELOOP = GlobalSock.ELOOP;  
ENAMETOOLONG = GlobalSock.ENAMETOOLONG;  
EHOSTDOWN = GlobalSock.EHOSTDOWN;  
EHOSTUNREACH = GlobalSock.EHOSTUNREACH;  
ENOTEMPTY = GlobalSock.ENOTEMPTY;  
EPROCLIM = GlobalSock.EPROCLIM;  
EUSERS = GlobalSock.EUSERS;  
EDQUOT = GlobalSock.EDQUOT;  
ESTALE = GlobalSock.ESTALE;  
EREMOTE = GlobalSock.EREMOTE;  
 
ENOTREADY = GlobalSock.ENOTREADY;  
EVERNOTSUPPORTED = GlobalSock.EVERNOTSUPPORTED;  
ENOTINITIALISED = GlobalSock.ENOTINITIALISED;  
 
Error codes from getaddrinfo()
EAI_AGAIN = GlobalSock.EAI_AGAIN;  
EAI_BADFLAGS = GlobalSock.EAI_BADFLAGS;  
EAI_FAIL = GlobalSock.EAI_FAIL;  
EAI_FAMILY = GlobalSock.EAI_FAMILY;  
EAI_MEMORY = GlobalSock.EAI_MEMORY;  
EAI_NODATA = GlobalSock.EAI_NODATA;  
EAI_NONAME = GlobalSock.EAI_NONAME;  
EAI_SERVICE = GlobalSock.EAI_SERVICE;  
EAI_SOCKTYPE = GlobalSock.EAI_SOCKTYPE;  
 
EAI_NODATA = GlobalSock.EAI_NODATA;  


Condition function value constants CF_*
WinSock 2 extension -- manifest constants for return values of the condition function
 
CF_ACCEPT = $0000;  
CF_REJECT = $0001;  
CF_DEFER = $0002;  


Shutdown option constants SD_*
WinSock 2 extension -- manifest constants for shutdown()
 
SD_RECEIVE = GlobalSock.SD_RECEIVE;  
SD_SEND = GlobalSock.SD_SEND;  
SD_BOTH = GlobalSock.SD_BOTH;  


Socket group constants SG_*
WinSock 2 extension -- data type and manifest constants for socket groups
 
SG_UNCONSTRAINED_GROUP = $01;  
SG_CONSTRAINED_GROUP = $02;  


Provider flag constants PFL_*
Flag bit definitions for dwProviderFlags */
 
PFL_MULTIPLE_PROTO_ENTRIES = $00000001;  
PFL_RECOMMENDED_PROTO_ENTRY = $00000002;  
PFL_HIDDEN = $00000004;  
PFL_MATCHES_PROTOCOL_ZERO = $00000008;  


Service flag constants XP1_*
 Flag bit definitions for dwServiceFlags1 */
 
XP1_CONNECTIONLESS = $00000001;  
XP1_GUARANTEED_DELIVERY = $00000002;  
XP1_GUARANTEED_ORDER = $00000004;  
XP1_MESSAGE_ORIENTED = $00000008;  
XP1_PSEUDO_STREAM = $00000010;  
XP1_GRACEFUL_CLOSE = $00000020;  
XP1_EXPEDITED_DATA = $00000040;  
XP1_CONNECT_DATA = $00000080;  
XP1_DISCONNECT_DATA = $00000100;  
XP1_SUPPORT_BROADCAST = $00000200;  
XP1_SUPPORT_MULTIPOINT = $00000400;  
XP1_MULTIPOINT_CONTROL_PLANE = $00000800;  
XP1_MULTIPOINT_DATA_PLANE = $00001000;  
XP1_QOS_SUPPORTED = $00002000;  
XP1_INTERRUPT = $00004000;  
XP1_UNI_SEND = $00008000;  
XP1_UNI_RECV = $00010000;  
XP1_IFS_HANDLES = $00020000;  
XP1_PARTIAL_MESSAGE = $00040000;  


Join leaf option constants JL_*
WinSock 2 extension -- manifest constants for WSAJoinLeaf()
 
JL_SENDER_ONLY = $01;  
JL_RECEIVER_ONLY = $02;  
JL_BOTH = $04;  


Socket flag constants WSA_FLAG_*
WinSock 2 extension -- manifest constants for WSASocket()
 
WSA_FLAG_OVERLAPPED = $01;  
WSA_FLAG_MULTIPOINT_C_ROOT = $02;  
WSA_FLAG_MULTIPOINT_C_LEAF = $04;  
WSA_FLAG_MULTIPOINT_D_ROOT = $08;  
WSA_FLAG_MULTIPOINT_D_LEAF = $10;  


Socket IOC option constants IOC_*
WinSock 2 extension -- manifest constants for WSAIoctl()
 
IOC_UNIX = $00000000;  
IOC_WS2 = $08000000;  
IOC_PROTOCOL = $10000000;  
IOC_VENDOR = $18000000;  


SIO option constants SIO_*
SIO_ASSOCIATE_HANDLE = IOC_IN or IOC_WS2 or 1;  
SIO_ENABLE_CIRCULAR_QUEUEING = IOC_WS2 or 2;  
SIO_FIND_ROUTE = IOC_OUT or IOC_WS2 or 3;  
SIO_FLUSH = IOC_WS2 or 4;  
SIO_GET_BROADCAST_ADDRESS = IOC_OUT or IOC_WS2 or 5;  
SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT or IOC_WS2 or 6;  
SIO_GET_QOS = IOC_INOUT or IOC_WS2 or 7;  
SIO_GET_GROUP_QOS = IOC_INOUT or IOC_WS2 or 8;  
SIO_MULTIPOINT_LOOPBACK = IOC_IN or IOC_WS2 or 9;  
SIO_MULTICAST_SCOPE = IOC_IN or IOC_WS2 or 10;  
SIO_SET_QOS = IOC_IN or IOC_WS2 or 11;  
SIO_SET_GROUP_QOS = IOC_IN or IOC_WS2 or 12;  
SIO_TRANSLATE_HANDLE = IOC_INOUT or IOC_WS2 or 13;  
 
WinSock 2 extension -- manifest constants for SIO_TRANSLATE_HANDLE ioctl
TH_NETDEV = $00000001;  
TH_TAPI = $00000002;  


Name Space constants NS_*
NS_ALL = (0);  
 
NS_SAP = (1);  
NS_NDS = (2);  
NS_PEER_BROWSE = (3);  
 
NS_TCPIP_LOCAL = (10);  
NS_TCPIP_HOSTS = (11);  
NS_DNS = (12);  
NS_NETBT = (13);  
NS_WINS = (14);  
 
NS_NBP = (20);  
 
NS_MS = (30);  
NS_STDA = (31);  
NS_NTDS = (32);  
 
NS_X500 = (40);  
NS_NIS = (41);  
NS_NISPLUS = (42);  
 
NS_WRQ = (50);  


Resolution flag constants RES_*
Resolution flags for WSAGetAddressByName() Note these are also used by the 1.1 API GetAddressByName, so leave them around.
 
RES_UNUSED_1 = $00000001;  
RES_FLUSH_CACHE = $00000002;  
RES_SERVICE = $00000004;  


Service type value constants SERVICE_TYPE_*
Well known value names for Service Types
 
SERVICE_TYPE_VALUE_IPXPORTA = 'IpxSocket'; SERVICE_TYPE_VALUE_IPXPORTW : PWideChar = 'IpxSocket';
 
SERVICE_TYPE_VALUE_SAPIDA = 'SapId'; SERVICE_TYPE_VALUE_SAPIDW : PWideChar = 'SapId';
 
SERVICE_TYPE_VALUE_TCPPORTA = 'TcpPort'; SERVICE_TYPE_VALUE_TCPPORTW : PWideChar = 'TcpPort';
 
SERVICE_TYPE_VALUE_UDPPORTA = 'UdpPort'; SERVICE_TYPE_VALUE_UDPPORTW : PWideChar = 'UdpPort';
 
SERVICE_TYPE_VALUE_OBJECTIDA = 'ObjectId'; SERVICE_TYPE_VALUE_OBJECTIDW : PWideChar = 'ObjectId';
 
SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDA;  
SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTA;  
SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTA;  
SERVICE_TYPE_VALUE_OBJECTID = SERVICE_TYPE_VALUE_OBJECTIDA;  
 
WinSock 2 extension -- WSABUF and QOS struct, include qos.h to pull in FLOWSPEC and related definitions
SERVICETYPE_NOTRAFFIC = $00000000; No data in this direction
SERVICETYPE_BESTEFFORT = $00000001; Best Effort
SERVICETYPE_CONTROLLEDLOAD = $00000002; Controlled Load
SERVICETYPE_GUARANTEED = $00000003; Guaranteed
SERVICETYPE_NETWORK_UNAVAILABLE = $00000004; Used to notify change to user
SERVICETYPE_GENERAL_INFORMATION = $00000005; Corresponds to "General Parameters" defined by IntServ
SERVICETYPE_NOCHANGE = $00000006; Used to indicate that the flow spec contains no change from any previous one
 
SERVICE_IMMEDIATE_TRAFFIC_CONTROL = $80000000; To turn on immediate traffic control, OR this flag with the ServiceType field in teh FLOWSPEC


LUP option constants LUP_*
LUP_DEEP = $0001;  
LUP_CONTAINERS = $0002;  
LUP_NOCONTAINERS = $0004;  
LUP_NEAREST = $0008;  
LUP_RETURN_NAME = $0010;  
LUP_RETURN_TYPE = $0020;  
LUP_RETURN_VERSION = $0040;  
LUP_RETURN_COMMENT = $0080;  
LUP_RETURN_ADDR = $0100;  
LUP_RETURN_BLOB = $0200;  
LUP_RETURN_ALIASES = $0400;  
LUP_RETURN_QUERY_STRING = $0800;  
LUP_RETURN_ALL = $0FF0;  
LUP_RES_SERVICE = $8000;  
 
LUP_FLUSHCACHE = $1000;  
LUP_FLUSHPREVIOUS = $2000;  
NAME_  
NAME_  
NAME_  
NAME_  


Address info flag constants AI_*
Flags used in "hints" argument to getaddrinfo()
Note: Under Linux these values may be different
 
AI_PASSIVE = GlobalSock.AI_PASSIVE;  
AI_CANONNAME = GlobalSock.AI_CANONNAME;  
AI_NUMERICHOST = GlobalSock.AI_NUMERICHOST;  
AI_NUMERICSERV = GlobalSock.AI_NUMERICSERV;  
AI_ALL = GlobalSock.AI_ALL;  
AI_ADDRCONFIG = GlobalSock.AI_ADDRCONFIG;  
AI_V4MAPPED = GlobalSock.AI_V4MAPPED;  
AI_NON_AUTHORITATIVE = GlobalSock.AI_NON_AUTHORITATIVE;  
AI_SECURE = GlobalSock.AI_SECURE;  
AI_RETURN_PREFERRED_NAMES = GlobalSock.AI_RETURN_PREFERRED_NAMES;  
AI_FQDN = GlobalSock.AI_FQDN;  
AI_FILESERVER = GlobalSock.AI_FILESERVER;  


Name info flag constants NI_*
Flags for getnameinfo()
NI_NOFQDN = GlobalSock.NI_NOFQDN;  
NI_NUMERICHOST = GlobalSock.NI_NUMERICHOST;  
NI_NAMEREQD = GlobalSock.NI_NAMEREQD;  
NI_NUMERICSERV = GlobalSock.NI_NUMERICSERV;  
NI_DGRAM = GlobalSock.NI_DGRAM;  
 
NI_MAXHOST = GlobalSock.NI_MAXHOST;  
NI_MAXSERV = GlobalSock.NI_MAXSERV;  


Type definitions


To be documented

Public variables


To be documented

Function declarations



Initialization functions

procedure WS2Init;
Description: To be documented
Note None documented


function WS2Start:Boolean;
Description: To be documented
Note None documented


function WS2Stop:Boolean;
Description: To be documented
Note None documented


procedure WS2AsyncStart(Data:Pointer);
Description: To be documented
Note None documented


Winsock2 functions

function accept( const s: TSocket; addr: PSockAddr; addrlen: PLongint ): TSocket;
Description: To be documented
Note None documented


function accept( const s: TSocket; addr: PSockAddr; var addrlen: Longint ): TSocket;
Description: To be documented
Note None documented


function bind( const s: TSocket; addr: PSockAddr; namelen: Longint ): Longint;
Description: To be documented
Note None documented


function bind( const s: TSocket; var addr: TSockAddr; namelen: Longint ): Longint;
Description: To be documented
Note None documented


function closesocket( const s: TSocket ): Longint;
Description: To be documented
Note None documented


function connect( const s: TSocket; name: PSockAddr; namelen: Longint): Longint;
Description: To be documented
Note None documented


function connect( const s: TSocket; var name: TSockAddr; namelen: Longint): Longint;
Description: To be documented
Note None documented


function ioctlsocket( const s: TSocket; cmd: Longint; var arg: u_long ): Longint;
Description: To be documented
Note None documented


function ioctlsocket( const s: TSocket; cmd: Longint; argp: pu_long ): Longint;
Description: To be documented
Note None documented


function getpeername( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint;
Description: To be documented
Note None documented


function getsockname( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint;
Description: To be documented
Note None documented


function getsockopt( const s: TSocket; const level, optname: Longint; optval: PChar; var optlen: Longint ): Longint;
Description: To be documented
Note None documented


function getsockopt( const s: TSocket; const level, optname: Longint; optval: Pointer; var optlen: Longint ): Longint;
Description: To be documented
Note None documented


function getsockopt( const s: TSocket; const level, optname: Longint; var optval; var optlen: Longint ): Longint;
Description: To be documented
Note None documented


function htonl(hostlong: u_long): u_long;
Description: To be documented
Note None documented


function htons(hostshort: u_short): u_short;
Description: To be documented
Note None documented


function inet_addr(cp: PChar): u_long;
Description: To be documented
Note None documented


function inet_ntoa(inaddr: TInAddr): PChar;
Description: To be documented
Note As per the Winsock specification, the buffer returned by this function is only guaranteed to be valid until the next Winsock function call is made within the same thread. Therefore, the data should be copied before another Winsock call.


function listen(s: TSocket; backlog: Longint): Longint;
Description: To be documented
Note None documented


function ntohl(netlong: u_long): u_long;
Description: To be documented
Note None documented


function ntohs(netshort: u_short): u_short;
Description: To be documented
Note None documented


function recv(s: TSocket; var Buf; len, flags: Longint): Longint;
Description: To be documented
Note None documented


function recv(s: TSocket; Buf: PChar; len, flags: Longint): Longint;
Description: To be documented
Note None documented


function recv(s: TSocket; Buf: Pointer; len, flags: Longint): Longint;
Description: To be documented
Note None documented


function recvfrom(s: TSocket; Buf: PChar; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint;
Description: To be documented
Note None documented


function recvfrom(s: TSocket; Buf: Pointer; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint;
Description: To be documented
Note None documented


function recvfrom(s: TSocket; var Buf; len, flags: Longint; var from: TSockAddr; var fromlen: Longint): Longint;
Description: To be documented
Note None documented


function select(nfds: Longint; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint;
Description: To be documented
Note All sockets contained in the FSSet must by of the same type


function send(s: TSocket; var Buf; len, flags: Longint): Longint;
Description: To be documented
Note None documented


function send(s: TSocket; Buf: PChar; len, flags: Longint): Longint;
Description: To be documented
Note None documented


function send(s: TSocket; Buf: Pointer; len, flags: Longint): Longint;
Description: To be documented
Note None documented


function sendto(s: TSocket; var Buf; len, flags: Longint; var addrto: TSockAddr; tolen: Longint): Longint;
Description: To be documented
Note None documented


function sendto(s: TSocket; Buf: PChar; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint;
Description: To be documented
Note None documented


function sendto(s: TSocket; Buf: Pointer; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint;
Description: To be documented
Note None documented


function setsockopt(s: TSocket; level, optname: Longint; const optval; optlen: Longint): Longint;
Description: To be documented
Note None documented


function setsockopt(s: TSocket; level, optname: Longint; optval: PChar; optlen: Longint): Longint;
Description: To be documented
Note None documented


function setsockopt(s: TSocket; level, optname: Longint; optval: Pointer; optlen: Longint): Longint;
Description: To be documented
Note None documented


function shutdown(s: TSocket; how: Longint): Longint;
Description: To be documented
Note None documented


function socket(af, struct, protocol: Longint): TSocket;
Description: To be documented
Note None documented


function gethostbyaddr(addr: Pointer; len, family: Longint): PHostEnt;
Description: To be documented
Note None documented


function gethostbyname(name: PChar): PHostEnt;
Description: To be documented
Note None documented


function gethostname(name: PChar; len: Longint): Longint;
Description: To be documented
Note None documented


function getservbyport(port: Longint; proto: PChar): PServEnt;
Description: To be documented
Note None documented


function getservbyname(name, proto: PChar): PServEnt;
Description: To be documented
Note None documented


function getprotobynumber(proto: Longint): PProtoEnt;
Description: To be documented
Note None documented


function getprotobyname(name: PChar): PProtoEnt;
Description: To be documented
Note None documented


function getaddrinfo(pNodeName, pServiceName: PChar; pHints: PAddrInfo; var ppResult: PAddrInfo): LongInt;
Description: To be documented
Note None documented


procedure freeaddrinfo(ai: PAddrInfo);
Description: To be documented
Note None documented


function getnameinfo(sa: PSockAddr; salen: Integer; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Integer): Integer;
Description: To be documented
Note None documented


function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Longint;
Description: To be documented
Note None documented


function WSACleanup: Longint;
Description: To be documented
Note None documented


procedure WSASetLastError(iError: Longint);
Description: To be documented
Note None documented


function WSAGetLastError: Longint;
Description: To be documented
Note None documented


function __WSAFDIsSet(s: TSOcket; var FDSet: TFDSet): Bool;
Description: To be documented
Note None documented


function inet_pton(Family: Longint; pszAddrString: PChar; pAddrBuf: Pointer): Longint;
Description: To be documented
Note None documented


function InetPtonA(Family: Longint; pszAddrString: PChar; pAddrBuf: Pointer): Longint;
Description: To be documented
Note None documented


function InetPtonW(Family: Longint; pszAddrString: PWideChar; pAddrBuf: Pointer): Longint;
Description: To be documented
Note None documented


function inet_ntop(Family: Longint; pAddr: Pointer; pStringBuf: PChar; StringBufSize: Longint): PChar;
Description: To be documented
Note None documented


function InetNtopA(Family: Longint; pAddr: Pointer; pStringBuf: PChar; StringBufSize: Longint): PChar;
Description: To be documented
Note None documented


function InetNtopW(Family: Longint; pAddr: Pointer; pStringBuf: PWideChar; StringBufSize: Longint): PWideChar;
Description: To be documented
Note None documented


function WSAhtonl( s : TSocket; hostlong : u_long; var lpnetlong : DWORD ): Longint;
Description: To be documented
Note None documented


function WSAhtons( s : TSocket; hostshort : u_short; var lpnetshort : WORD ): Longint;
Description: To be documented
Note None documented


function WSANtohl( s : TSocket; netlong : u_long; var lphostlong : DWORD ): Longint;
Description: To be documented
Note None documented


function WSANtohs( s : TSocket; netshort : u_short; var lphostshort : WORD ): Longint;
Description: To be documented
Note None documented


function WSAMakeSyncReply(Buflen, Error: Word): Longint;
Description: To be documented
Note None documented


function WSAMakeSelectReply(Event, Error: Word): Longint;
Description: To be documented
Note None documented


function WSAGetAsyncBuflen(Param: Longint): Word;
Description: To be documented
Note None documented


function WSAGetAsyncError(Param: Longint): Word;
Description: To be documented
Note None documented


function WSAGetSelectEvent(Param: Longint): Word;
Description: To be documented
Note None documented


function WSAGetSelectError(Param: Longint): Word;
Description: To be documented
Note None documented


procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet);
Description: To be documented
Note None documented


function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean;
Description: To be documented
Note None documented


procedure FD_SET(Socket: TSocket; var FDSet: TFDSet);
Description: To be documented
Note None documented


procedure FD_ZERO(var FDSet: TFDSet);
Description: To be documented
Note None documented


Winsock2 undocumented functions

function WsControl(Proto:DWORD; Action:DWORD; pRequestInfo:Pointer; var pcbRequestInfoLen:DWORD; pResponseInfo:Pointer; var pcbResponseInfoLen:DWORD):Integer;
Description: To be documented
Note None documented


function getnetbyaddr(addr: Pointer; len, Struct: Integer): PNetEnt;
Description: To be documented
Note None documented


function getnetbyname(name: PChar): PNetEnt;
Description: To be documented
Note None documented


Winsock2 enhanced functions

function WsControlEx(Proto:DWORD; Action:DWORD; pRequestInfo:Pointer; var pcbRequestInfoLen:DWORD; pResponseInfo:Pointer; var pcbResponseInfoLen:DWORD):Integer;
Description: To be documented
Note None documented


Return to Unit Reference