Difference between revisions of "Unit Winsock2"
From Ultibo.org
(24 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
---- | ---- | ||
− | '' | + | '''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 === | === Constants === | ||
---- | ---- | ||
− | ''To be | + | |
+ | <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> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <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"| | ||
+ | |- | ||
+ | | <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"| | ||
+ | |- | ||
+ | | <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"| | ||
+ | |- | ||
+ | | <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"| | ||
+ | |- | ||
+ | | <code>FD_SETSIZE = GlobalSock.FD_SETSIZE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>IOCPARM_MASK = GlobalSock.IOCPARM_MASK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IOC_VOID = GlobalSock.IOC_VOID;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IOC_OUT = GlobalSock.IOC_OUT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IOC_IN = GlobalSock.IOC_IN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IOC_INOUT = GlobalSock.IOC_INOUT;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FIONREAD = GlobalSock.FIONREAD; </code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FIONBIO = GlobalSock.FIONBIO;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FIOASYNC = GlobalSock.FIOASYNC;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SIOCSHIWAT = GlobalSock.SIOCSHIWAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIOCGHIWAT = GlobalSock.SIOCGHIWAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIOCSLOWAT = GlobalSock.SIOCSLOWAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIOCGLOWAT = GlobalSock.SIOCGLOWAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIOCATMARK = GlobalSock.SIOCATMARK;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>IMPLINK_IP = GlobalSock.IMPLINK_IP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IMPLINK_LOWEXPER = GlobalSock.IMPLINK_LOWEXPER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IMPLINK_HIGHEXPER = GlobalSock.IMPLINK_HIGHEXPER;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>TF_DISCONNECT = GlobalSock.TF_DISCONNECT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TF_REUSE_SOCKET = GlobalSock.TF_REUSE_SOCKET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TF_WRITE_BEHIND = GlobalSock.TF_WRITE_BEHIND;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>INET_ADDRSTR_ANY = GlobalSock.INET_ADDRSTR_ANY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>INET6_ADDRSTR_INIT = GlobalSock.INET6_ADDRSTR_INIT;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>INET_ADDRSTR_BROADCAST = GlobalSock.INET_ADDRSTR_BROADCAST;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>INET_ADDRSTRLEN = GlobalSock.INET_ADDRSTRLEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>INET6_ADDRSTRLEN = GlobalSock.INET6_ADDRSTRLEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>IN6ADDR_ANY_INIT:TIn6Addr = (u6_addr16: (0, 0, 0, 0, 0, 0, 0, 0));</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IN6ADDR_LOOPBACK_INIT:TIn6Addr = (u6_addr8: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>INADDR_ANY = GlobalSock.INADDR_ANY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>INADDR_LOOPBACK = GlobalSock.INADDR_LOOPBACK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>INADDR_BROADCAST = GlobalSock.INADDR_BROADCAST;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>INADDR_NONE = GlobalSock.INADDR_NONE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>IN6ADDR_ANY:TIn6Addr = (u6_addr16: (0, 0, 0, 0, 0, 0, 0, 0));</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IN6ADDR_LOOPBACK:TIn6Addr = (u6_addr8: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1));</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Level number for (get/set)sockopt() to apply to socket itself'' | ||
+ | |- | ||
+ | | <code>SOL_SOCKET = GlobalSock.SOL_SOCKET;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Maximum queue length specifiable by listen'' | ||
+ | |- | ||
+ | | <code>SOMAXCONN = GlobalSock.SOMAXCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Return flags'' | ||
+ | |- | ||
+ | | <code>RESULT_IS_ALIAS = $0001;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SERVICE_MULTIPLE = $00000001;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>BIGENDIAN = $0000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LITTLEENDIAN = $0001;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SECURITY_PROTOCOL_NONE = $0000;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''This is used instead of -1, since the TSocket type is unsigned'' | ||
+ | |- | ||
+ | | <code>INVALID_SOCKET = GlobalSock.INVALID_SOCKET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKET_ERROR = GlobalSock.SOCKET_ERROR;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Define constant based on rfc883, used by gethostbyxxxx() calls'' | ||
+ | |- | ||
+ | | <code>MAXGETHOSTSTRUCT = GlobalSock.MAXGETHOSTSTRUCT;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSADESCRIPTION_LEN = GlobalSock.WSADESCRIPTION_LEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSASYS_STATUS_LEN = GlobalSock.WSASYS_STATUS_LEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>MAX_PROTOCOL_CHAIN = 7;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BASE_PROTOCOL = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LAYERED_PROTOCOL = 0;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAPROTOCOL_LEN = 255;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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>IPPROTO_IP = GlobalSock.IPPROTO_IP;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>IPPROTO_ICMP = GlobalSock.IPPROTO_ICMP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_IGMP = GlobalSock.IPPROTO_IGMP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_GGP = GlobalSock.IPPROTO_GGP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_TCP = GlobalSock.IPPROTO_TCP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_EGP = GlobalSock.IPPROTO_EGP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_PUP = GlobalSock.IPPROTO_PUP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_UDP = GlobalSock.IPPROTO_UDP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_HMP = GlobalSock.IPPROTO_HMP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_IDP = GlobalSock.IPPROTO_IDP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_RDP = GlobalSock.IPPROTO_RDP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_IPV6 = GlobalSock.IPPROTO_IPV6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_ROUTING = GlobalSock.IPPROTO_ROUTING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_FRAGMENT = GlobalSock.IPPROTO_FRAGMENT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_ICMPV6 = GlobalSock.IPPROTO_ICMPV6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_RVD = GlobalSock.IPPROTO_RVD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_ND = GlobalSock.IPPROTO_ND;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_RAW = GlobalSock.IPPROTO_RAW;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPROTO_MAX = GlobalSock.IPPROTO_MAX;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>IPPORT_ECHO = GlobalSock.IPPORT_ECHO;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_DISCARD = GlobalSock.IPPORT_DISCARD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_SYSTAT = GlobalSock.IPPORT_SYSTAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_DAYTIME = GlobalSock.IPPORT_DAYTIME;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_NETSTAT = GlobalSock.IPPORT_NETSTAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_FTP = GlobalSock.IPPORT_FTP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_TELNET = GlobalSock.IPPORT_TELNET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_SMTP = GlobalSock.IPPORT_SMTP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_TIMESERVER = GlobalSock.IPPORT_TIMESERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_NAMESERVER = GlobalSock.IPPORT_NAMESERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_WHOIS = GlobalSock.IPPORT_WHOIS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_DNS = GlobalSock.IPPORT_DNS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_MTP = GlobalSock.IPPORT_MTP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_BOOTPS = GlobalSock.IPPORT_BOOTPS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_BOOTPC = GlobalSock.IPPORT_BOOTPC;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Port/socket numbers: host specific functions'' | ||
+ | |- | ||
+ | | <code>IPPORT_TFTP = GlobalSock.IPPORT_TFTP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_RJE = GlobalSock.IPPORT_RJE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_FINGER = GlobalSock.IPPORT_FINGER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_TTYLINK = GlobalSock.IPPORT_TTYLINK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_SUPDUP = GlobalSock.IPPORT_SUPDUP;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''UNIX TCP sockets'' | ||
+ | |- | ||
+ | | <code>IPPORT_EXECSERVER = GlobalSock.IPPORT_EXECSERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_LOGINSERVER = GlobalSock.IPPORT_LOGINSERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_CMDSERVER = GlobalSock.IPPORT_CMDSERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_EFSSERVER = GlobalSock.IPPORT_EFSSERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''UNIX UDP sockets'' | ||
+ | |- | ||
+ | | <code>IPPORT_BIFFUDP = GlobalSock.IPPORT_BIFFUDP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_WHOSERVER = GlobalSock.IPPORT_WHOSERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IPPORT_ROUTESERVER = GlobalSock.IPPORT_ROUTESERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root)'' | ||
+ | |- | ||
+ | | <code>IPPORT_RESERVED = GlobalSock.IPPORT_RESERVED;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>IP_OPTIONS = GlobalSock.IP_OPTIONS;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>IP_MULTICAST_IF = GlobalSock.IP_MULTICAST_IF;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_MULTICAST_TTL = GlobalSock.IP_MULTICAST_TTL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_MULTICAST_LOOP = GlobalSock.IP_MULTICAST_LOOP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_ADD_MEMBERSHIP = GlobalSock.IP_ADD_MEMBERSHIP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_DROP_MEMBERSHIP = GlobalSock.IP_DROP_MEMBERSHIP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_TTL = GlobalSock.IP_TTL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_TOS = GlobalSock.IP_TOS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_DONTFRAGMENT = GlobalSock.IP_DONTFRAGMENT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_HDRINCL = GlobalSock.IP_HDRINCL;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>IP_DEFAULT_MULTICAST_TTL = GlobalSock.IP_DEFAULT_MULTICAST_TTL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_DEFAULT_MULTICAST_LOOP = GlobalSock.IP_DEFAULT_MULTICAST_LOOP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IP_MAX_MEMBERSHIPS = GlobalSock.IP_MAX_MEMBERSHIPS;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>SOCK_STREAM = GlobalSock.SOCK_STREAM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCK_DGRAM = GlobalSock.SOCK_DGRAM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCK_RAW = GlobalSock.SOCK_RAW;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCK_RDM = GlobalSock.SOCK_RDM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCK_SEQPACKET = GlobalSock.SOCK_SEQPACKET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCK_PACKET = GlobalSock.SOCK_PACKET;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>SO_ACCEPTCONN = GlobalSock.SO_ACCEPTCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_REUSEADDR = GlobalSock.SO_REUSEADDR;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_KEEPALIVE = GlobalSock.SO_KEEPALIVE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_DONTROUTE = GlobalSock.SO_DONTROUTE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_BROADCAST = GlobalSock.SO_BROADCAST;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_USELOOPBACK = GlobalSock.SO_USELOOPBACK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_LINGER = GlobalSock.SO_LINGER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_OOBINLINE = GlobalSock.SO_OOBINLINE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SO_DONTLINGER = GlobalSock.SO_DONTLINGER;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Additional options'' | ||
+ | |- | ||
+ | | <code>SO_SNDBUF = GlobalSock.SO_SNDBUF;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_RCVBUF = GlobalSock.SO_RCVBUF;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_SNDLOWAT = GlobalSock.SO_SNDLOWAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_RCVLOWAT = GlobalSock.SO_RCVLOWAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_SNDTIMEO = GlobalSock.SO_SNDTIMEO;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_RCVTIMEO = GlobalSock.SO_RCVTIMEO;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_ERROR = GlobalSock.SO_ERROR;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_TYPE = GlobalSock.SO_TYPE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_CONNTIMEO = GlobalSock.SO_CONNTIMEO;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |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> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_CONNOPT = GlobalSock.SO_CONNOPT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_DISCDATA = GlobalSock.SO_DISCDATA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_DISCOPT = GlobalSock.SO_DISCOPT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_CONNDATALEN = GlobalSock.SO_CONNDATALEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_CONNOPTLEN = GlobalSock.SO_CONNOPTLEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_DISCDATALEN = GlobalSock.SO_DISCDATALEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_DISCOPTLEN = GlobalSock.SO_DISCOPTLEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Option for opening sockets for synchronous access'' | ||
+ | |- | ||
+ | | <code>SO_OPENTYPE = GlobalSock.SO_OPENTYPE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_SYNCHRONOUS_ALERT = GlobalSock.SO_SYNCHRONOUS_ALERT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_SYNCHRONOUS_NONALERT = GlobalSock.SO_SYNCHRONOUS_NONALERT;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Other NT-specific options'' | ||
+ | |- | ||
+ | | <code>SO_MAXDG = GlobalSock.SO_MAXDG;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_MAXPATHDG = GlobalSock.SO_MAXPATHDG;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_UPDATE_ACCEPT_CONTEXT = GlobalSock.SO_UPDATE_ACCEPT_CONTEXT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SO_CONNECT_TIME = GlobalSock.SO_CONNECT_TIME;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>TCP_MAXSEG = GlobalSock.TCP_MAXSEG;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TCP_NOPUSH = GlobalSock.TCP_NOPUSH;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TCP_NOOPT = GlobalSock.TCP_NOOPT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TCP_BSDURGENT = GlobalSock.TCP_BSDURGENT;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>TCP_WSCALE = GlobalSock.TCP_WSCALE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TCP_NOSACK = GlobalSock.TCP_NOSACK;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>AF_UNIX = GlobalSock.AF_UNIX;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_INET = GlobalSock.AF_INET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_IMPLINK = GlobalSock.AF_IMPLINK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_PUP = GlobalSock.AF_PUP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_CHAOS = GlobalSock.AF_CHAOS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_IPX = GlobalSock.AF_IPX;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_NS = GlobalSock.AF_NS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_ISO = GlobalSock.AF_ISO;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_OSI = GlobalSock.AF_OSI;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_ECMA = GlobalSock.AF_ECMA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_DATAKIT = GlobalSock.AF_DATAKIT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_CCITT = GlobalSock.AF_CCITT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_SNA = GlobalSock.AF_SNA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_DECnet = GlobalSock.AF_DECnet;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_DLI = GlobalSock.AF_DLI;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_LAT = GlobalSock.AF_LAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_HYLINK = GlobalSock.AF_HYLINK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_APPLETALK = GlobalSock.AF_APPLETALK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_NETBIOS = GlobalSock.AF_NETBIOS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_VOICEVIEW = GlobalSock.AF_VOICEVIEW;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_FIREFOX = GlobalSock.AF_FIREFOX;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_UNKNOWN1 = GlobalSock.AF_UNKNOWN1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_BAN = GlobalSock.AF_BAN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_ATM = GlobalSock.AF_ATM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_INET6 = GlobalSock.AF_INET6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_CLUSTER = GlobalSock.AF_CLUSTER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_12844 = GlobalSock.AF_12844;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_IRDA = GlobalSock.AF_IRDA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_NETDES = GlobalSock.AF_NETDES;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>AF_MAX = GlobalSock.AF_MAX;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>PF_UNIX = GlobalSock.PF_UNIX;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_INET = GlobalSock.PF_INET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_IMPLINK = GlobalSock.PF_IMPLINK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_PUP = GlobalSock.PF_PUP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_CHAOS = GlobalSock.PF_CHAOS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_NS = GlobalSock.PF_NS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_IPX = GlobalSock.PF_IPX;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_ISO = GlobalSock.PF_ISO;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_OSI = GlobalSock.PF_OSI;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_ECMA = GlobalSock.PF_ECMA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_DATAKIT = GlobalSock.PF_DATAKIT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_CCITT = GlobalSock.PF_CCITT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_SNA = GlobalSock.PF_SNA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_DECnet = GlobalSock.PF_DECnet;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_DLI = GlobalSock.PF_DLI;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_LAT = GlobalSock.PF_LAT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_HYLINK = GlobalSock.PF_HYLINK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_APPLETALK = GlobalSock.PF_APPLETALK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_VOICEVIEW = GlobalSock.PF_VOICEVIEW;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_FIREFOX = GlobalSock.PF_FIREFOX;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_UNKNOWN1 = GlobalSock.PF_UNKNOWN1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_BAN = GlobalSock.PF_BAN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_ATM = GlobalSock.PF_ATM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_INET6 = GlobalSock.PF_INET6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_CLUSTER = GlobalSock.PF_CLUSTER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_12844 = GlobalSock.PF_12844;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_IRDA = GlobalSock.PF_IRDA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_NETDES = GlobalSock.PF_NETDES;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>PF_MAX = GlobalSock.PF_MAX;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>MSG_PEEK = GlobalSock.MSG_PEEK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>MSG_DONTROUTE = GlobalSock.MSG_DONTROUTE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>MSG_INTERRUPT = GlobalSock.MSG_INTERRUPT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>MSG_MAXIOVLEN = GlobalSock.MSG_MAXIOVLEN;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>MSG_PARTIAL = GlobalSock.MSG_PARTIAL;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>FD_READ_BIT = 0;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>FD_READ = (1 shl FD_READ_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_WRITE_BIT = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_WRITE = (1 shl FD_WRITE_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_OOB_BIT = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_OOB = (1 shl FD_OOB_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_ACCEPT_BIT = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_ACCEPT = (1 shl FD_ACCEPT_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_CONNECT_BIT = 4;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_CONNECT = (1 shl FD_CONNECT_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_CLOSE_BIT = 5;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_CLOSE = (1 shl FD_CLOSE_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_QOS_BIT = 6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_QOS = (1 shl FD_QOS_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_GROUP_QOS_BIT = 7;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_GROUP_QOS = (1 shl FD_GROUP_QOS_BIT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_MAX_EVENTS = 8;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FD_ALL_EVENTS = ((1 shl FD_MAX_EVENTS) - 1);</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>WSABASEERR = GlobalSock.WSABASEERR;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Windows Sockets definitions of regular Microsoft C error constants'' | ||
+ | |- | ||
+ | | <code>WSAEINTR = GlobalSock.WSAEINTR;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEBADF = GlobalSock.WSAEBADF;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEACCES = GlobalSock.WSAEACCES;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEFAULT = GlobalSock.WSAEFAULT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEINVAL = GlobalSock.WSAEINVAL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEMFILE = GlobalSock.WSAEMFILE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Windows Sockets definitions of regular Berkeley error constants'' | ||
+ | |- | ||
+ | | <code>WSAEWOULDBLOCK = GlobalSock.WSAEWOULDBLOCK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEINPROGRESS = GlobalSock.WSAEINPROGRESS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEALREADY = GlobalSock.WSAEALREADY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENOTSOCK = GlobalSock.WSAENOTSOCK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEDESTADDRREQ = GlobalSock.WSAEDESTADDRREQ;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEMSGSIZE = GlobalSock.WSAEMSGSIZE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEPROTOTYPE = GlobalSock.WSAEPROTOTYPE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENOPROTOOPT = GlobalSock.WSAENOPROTOOPT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEPROTONOSUPPORT = GlobalSock.WSAEPROTONOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAESOCKTNOSUPPORT = GlobalSock.WSAESOCKTNOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEOPNOTSUPP = GlobalSock.WSAEOPNOTSUPP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEPFNOSUPPORT = GlobalSock.WSAEPFNOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEAFNOSUPPORT = GlobalSock.WSAEAFNOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEADDRINUSE = GlobalSock.WSAEADDRINUSE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEADDRNOTAVAIL = GlobalSock.WSAEADDRNOTAVAIL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENETDOWN = GlobalSock.WSAENETDOWN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENETUNREACH = GlobalSock.WSAENETUNREACH;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENETRESET = GlobalSock.WSAENETRESET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAECONNABORTED = GlobalSock.WSAECONNABORTED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAECONNRESET = GlobalSock.WSAECONNRESET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENOBUFS = GlobalSock.WSAENOBUFS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEISCONN = GlobalSock.WSAEISCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENOTCONN = GlobalSock.WSAENOTCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAESHUTDOWN = GlobalSock.WSAESHUTDOWN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAETOOMANYREFS = GlobalSock.WSAETOOMANYREFS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAETIMEDOUT = GlobalSock.WSAETIMEDOUT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAECONNREFUSED = GlobalSock.WSAECONNREFUSED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAELOOP = GlobalSock.WSAELOOP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENAMETOOLONG = GlobalSock.WSAENAMETOOLONG;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEHOSTDOWN = GlobalSock.WSAEHOSTDOWN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEHOSTUNREACH = GlobalSock.WSAEHOSTUNREACH;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAENOTEMPTY = GlobalSock.WSAENOTEMPTY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEPROCLIM = GlobalSock.WSAEPROCLIM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEUSERS = GlobalSock.WSAEUSERS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEDQUOT = GlobalSock.WSAEDQUOT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAESTALE = GlobalSock.WSAESTALE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEREMOTE = GlobalSock.WSAEREMOTE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSAEDISCON = GlobalSock.WSAEDISCON;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Extended Windows Sockets error constant definitions'' | ||
+ | |- | ||
+ | | <code>WSASYSNOTREADY = GlobalSock.WSASYSNOTREADY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAVERNOTSUPPORTED = GlobalSock.WSAVERNOTSUPPORTED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSANOTINITIALISED = GlobalSock.WSANOTINITIALISED;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSAENOMORE = GlobalSock.WSAENOMORE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAECANCELLED = GlobalSock.WSAECANCELLED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEINVALIDPROCTABLE = GlobalSock.WSAEINVALIDPROCTABLE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEINVALIDPROVIDER = GlobalSock.WSAEINVALIDPROVIDER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEPROVIDERFAILEDINIT = GlobalSock.WSAEPROVIDERFAILEDINIT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSASYSCALLFAILURE = GlobalSock.WSASYSCALLFAILURE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSASERVICE_NOT_FOUND = GlobalSock.WSASERVICE_NOT_FOUND;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSATYPE_NOT_FOUND = GlobalSock.WSATYPE_NOT_FOUND;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_E_NO_MORE = GlobalSock.WSA_E_NO_MORE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_E_CANCELLED = GlobalSock.WSA_E_CANCELLED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSAEREFUSED = GlobalSock.WSAEREFUSED;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |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"| | ||
+ | |- | ||
+ | |colspan="2"|''Authoritative Answer: Host not found'' | ||
+ | |- | ||
+ | | <code>WSAHOST_NOT_FOUND = GlobalSock.WSAHOST_NOT_FOUND;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>HOST_NOT_FOUND = GlobalSock.HOST_NOT_FOUND;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Non-Authoritative: Host not found, or SERVERFAIL'' | ||
+ | |- | ||
+ | | <code>WSATRY_AGAIN = GlobalSock.WSATRY_AGAIN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TRY_AGAIN = GlobalSock.TRY_AGAIN;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Non recoverable errors, FORMERR, REFUSED, NOTIMP'' | ||
+ | |- | ||
+ | | <code>WSANO_RECOVERY = GlobalSock.WSANO_RECOVERY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NO_RECOVERY = GlobalSock.NO_RECOVERY;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Valid name, no data record of requested type'' | ||
+ | |- | ||
+ | | <code>WSANO_DATA = GlobalSock.WSANO_DATA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NO_DATA = GlobalSock.NO_DATA;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''no address, look for MX record'' | ||
+ | |- | ||
+ | | <code>WSANO_ADDRESS = GlobalSock.WSANO_ADDRESS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NO_ADDRESS = GlobalSock.NO_ADDRESS;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''WinSock 2 extension -- new error codes and type definition'' | ||
+ | |- | ||
+ | | <code>WSA_IO_PENDING = GlobalSock.WSA_IO_PENDING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IO_INCOMPLETE = GlobalSock.WSA_IO_INCOMPLETE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_INVALID_HANDLE = GlobalSock.WSA_INVALID_HANDLE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_INVALID_PARAMETER = GlobalSock.WSA_INVALID_PARAMETER;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_NOT_ENOUGH_MEMORY = GlobalSock.WSA_NOT_ENOUGH_MEMORY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_OPERATION_ABORTED = GlobalSock.WSA_OPERATION_ABORTED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_INVALID_EVENT = GlobalSock.WSA_INVALID_EVENT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_MAXIMUM_WAIT_EVENTS = GlobalSock.WSA_MAXIMUM_WAIT_EVENTS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_WAIT_FAILED = GlobalSock.WSA_WAIT_FAILED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_WAIT_EVENT_0 = GlobalSock.WSA_WAIT_EVENT_0;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_WAIT_IO_COMPLETION = GlobalSock.WSA_WAIT_IO_COMPLETION;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_WAIT_TIMEOUT = GlobalSock.WSA_WAIT_TIMEOUT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_INFINITE = GlobalSock.WSA_INFINITE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |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> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EINPROGRESS = GlobalSock.EINPROGRESS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EALREADY = GlobalSock.EALREADY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENOTSOCK = GlobalSock.ENOTSOCK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EDESTADDRREQ = GlobalSock.EDESTADDRREQ;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EMSGSIZE = GlobalSock.EMSGSIZE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EPROTOTYPE = GlobalSock.EPROTOTYPE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENOPROTOOPT = GlobalSock.ENOPROTOOPT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EPROTONOSUPPORT = GlobalSock.EPROTONOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ESOCKTNOSUPPORT = GlobalSock.ESOCKTNOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EOPNOTSUPP = GlobalSock.EOPNOTSUPP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EPFNOSUPPORT = GlobalSock.EPFNOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAFNOSUPPORT = GlobalSock.EAFNOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EADDRINUSE = GlobalSock.EADDRINUSE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EADDRNOTAVAIL = GlobalSock.EADDRNOTAVAIL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENETDOWN = GlobalSock.ENETDOWN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENETUNREACH = GlobalSock.ENETUNREACH;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENETRESET = GlobalSock.ENETRESET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ECONNABORTED = GlobalSock.ECONNABORTED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ECONNRESET = GlobalSock.ECONNRESET;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENOBUFS = GlobalSock.ENOBUFS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EISCONN = GlobalSock.EISCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENOTCONN = GlobalSock.ENOTCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ESHUTDOWN = GlobalSock.ESHUTDOWN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ETOOMANYREFS = GlobalSock.ETOOMANYREFS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ETIMEDOUT = GlobalSock.ETIMEDOUT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ECONNREFUSED = GlobalSock.ECONNREFUSED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ELOOP = GlobalSock.ELOOP;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENAMETOOLONG = GlobalSock.ENAMETOOLONG;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EHOSTDOWN = GlobalSock.EHOSTDOWN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EHOSTUNREACH = GlobalSock.EHOSTUNREACH;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENOTEMPTY = GlobalSock.ENOTEMPTY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EPROCLIM = GlobalSock.EPROCLIM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EUSERS = GlobalSock.EUSERS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EDQUOT = GlobalSock.EDQUOT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ESTALE = GlobalSock.ESTALE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EREMOTE = GlobalSock.EREMOTE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>ENOTREADY = GlobalSock.ENOTREADY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EVERNOTSUPPORTED = GlobalSock.EVERNOTSUPPORTED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ENOTINITIALISED = GlobalSock.ENOTINITIALISED;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Error codes from getaddrinfo()'' | ||
+ | |- | ||
+ | | <code>EAI_AGAIN = GlobalSock.EAI_AGAIN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_BADFLAGS = GlobalSock.EAI_BADFLAGS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_FAIL = GlobalSock.EAI_FAIL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_FAMILY = GlobalSock.EAI_FAMILY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_MEMORY = GlobalSock.EAI_MEMORY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_NODATA = GlobalSock.EAI_NODATA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_NONAME = GlobalSock.EAI_NONAME;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_SERVICE = GlobalSock.EAI_SERVICE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_SOCKTYPE = GlobalSock.EAI_SOCKTYPE;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>EAI_NODATA = GlobalSock.EAI_NODATA;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>CF_ACCEPT = $0000;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>CF_REJECT = $0001;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>CF_DEFER = $0002;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>SD_RECEIVE = GlobalSock.SD_RECEIVE;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>SD_SEND = GlobalSock.SD_SEND;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SD_BOTH = GlobalSock.SD_BOTH;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>SG_UNCONSTRAINED_GROUP = $01;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>SG_CONSTRAINED_GROUP = $02;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>PFL_MULTIPLE_PROTO_ENTRIES = $00000001;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>PFL_RECOMMENDED_PROTO_ENTRY = $00000002;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PFL_HIDDEN = $00000004;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PFL_MATCHES_PROTOCOL_ZERO = $00000008;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| Flag bit definitions for dwServiceFlags1 */ | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>XP1_CONNECTIONLESS = $00000001;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>XP1_GUARANTEED_DELIVERY = $00000002;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_GUARANTEED_ORDER = $00000004;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_MESSAGE_ORIENTED = $00000008;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_PSEUDO_STREAM = $00000010;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_GRACEFUL_CLOSE = $00000020;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_EXPEDITED_DATA = $00000040;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_CONNECT_DATA = $00000080;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_DISCONNECT_DATA = $00000100;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_SUPPORT_BROADCAST = $00000200;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_SUPPORT_MULTIPOINT = $00000400;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_MULTIPOINT_CONTROL_PLANE = $00000800;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_MULTIPOINT_DATA_PLANE = $00001000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_QOS_SUPPORTED = $00002000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_INTERRUPT = $00004000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_UNI_SEND = $00008000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_UNI_RECV = $00010000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_IFS_HANDLES = $00020000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>XP1_PARTIAL_MESSAGE = $00040000;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>JL_SENDER_ONLY = $01;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>JL_RECEIVER_ONLY = $02;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>JL_BOTH = $04;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>WSA_FLAG_OVERLAPPED = $01;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>WSA_FLAG_MULTIPOINT_C_ROOT = $02;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_FLAG_MULTIPOINT_C_LEAF = $04;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_FLAG_MULTIPOINT_D_ROOT = $08;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_FLAG_MULTIPOINT_D_LEAF = $10;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>IOC_UNIX = $00000000;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>IOC_WS2 = $08000000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IOC_PROTOCOL = $10000000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IOC_VENDOR = $18000000;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | | <code>SIO_ENABLE_CIRCULAR_QUEUEING = IOC_WS2 or 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_FIND_ROUTE = IOC_OUT or IOC_WS2 or 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_FLUSH = IOC_WS2 or 4;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_GET_BROADCAST_ADDRESS = IOC_OUT or IOC_WS2 or 5;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT or IOC_WS2 or 6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_GET_QOS = IOC_INOUT or IOC_WS2 or 7;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_GET_GROUP_QOS = IOC_INOUT or IOC_WS2 or 8;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_MULTIPOINT_LOOPBACK = IOC_IN or IOC_WS2 or 9;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_MULTICAST_SCOPE = IOC_IN or IOC_WS2 or 10;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_SET_QOS = IOC_IN or IOC_WS2 or 11;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_SET_GROUP_QOS = IOC_IN or IOC_WS2 or 12;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SIO_TRANSLATE_HANDLE = IOC_INOUT or IOC_WS2 or 13;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''WinSock 2 extension -- manifest constants for SIO_TRANSLATE_HANDLE ioctl'' | ||
+ | |- | ||
+ | | <code>TH_NETDEV = $00000001;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TH_TAPI = $00000002;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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%;"| | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NS_SAP = (1);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_NDS = (2);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_PEER_BROWSE = (3);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NS_TCPIP_LOCAL = (10);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_TCPIP_HOSTS = (11);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_DNS = (12);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_NETBT = (13);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_WINS = (14);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NS_NBP = (20);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code> NS_MS = (30);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_STDA = (31);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_NTDS = (32);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NS_X500 = (40);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_NIS = (41);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NS_NISPLUS = (42);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NS_WRQ = (50);</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>RES_UNUSED_1 = $00000001;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>RES_FLUSH_CACHE = $00000002;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>RES_SERVICE = $00000004;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_IPXPORTA = 'IpxSocket';</code> | ||
+ | | SERVICE_TYPE_VALUE_IPXPORTW : PWideChar = 'IpxSocket'; | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_SAPIDA = 'SapId';</code> | ||
+ | | SERVICE_TYPE_VALUE_SAPIDW : PWideChar = 'SapId'; | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_TCPPORTA = 'TcpPort';</code> | ||
+ | | SERVICE_TYPE_VALUE_TCPPORTW : PWideChar = 'TcpPort'; | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_UDPPORTA = 'UdpPort';</code> | ||
+ | | SERVICE_TYPE_VALUE_UDPPORTW : PWideChar = 'UdpPort'; | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_OBJECTIDA = 'ObjectId';</code> | ||
+ | | SERVICE_TYPE_VALUE_OBJECTIDW : PWideChar = 'ObjectId'; | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTA;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SERVICE_TYPE_VALUE_OBJECTID = SERVICE_TYPE_VALUE_OBJECTIDA;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |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"| | ||
+ | |- | ||
+ | | <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''' <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%;"| | ||
+ | |- | ||
+ | | <code>LUP_CONTAINERS = $0002;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_NOCONTAINERS = $0004;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_NEAREST = $0008;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_NAME = $0010;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_TYPE = $0020;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_VERSION = $0040;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_COMMENT = $0080;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_ADDR = $0100;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_BLOB = $0200;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_ALIASES = $0400;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_QUERY_STRING = $0800;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RETURN_ALL = $0FF0;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_RES_SERVICE = $8000;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>LUP_FLUSHCACHE = $1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LUP_FLUSHPREVIOUS = $2000;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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"| | ||
+ | |- | ||
+ | | <code>AI_PASSIVE = GlobalSock.AI_PASSIVE;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>AI_CANONNAME = GlobalSock.AI_CANONNAME;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_NUMERICHOST = GlobalSock.AI_NUMERICHOST;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_NUMERICSERV = GlobalSock.AI_NUMERICSERV;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_ALL = GlobalSock.AI_ALL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_ADDRCONFIG = GlobalSock.AI_ADDRCONFIG;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_V4MAPPED = GlobalSock.AI_V4MAPPED;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_NON_AUTHORITATIVE = GlobalSock.AI_NON_AUTHORITATIVE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_SECURE = GlobalSock.AI_SECURE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_RETURN_PREFERRED_NAMES = GlobalSock.AI_RETURN_PREFERRED_NAMES;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_FQDN = GlobalSock.AI_FQDN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AI_FILESERVER = GlobalSock.AI_FILESERVER;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' <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() | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NI_NOFQDN = GlobalSock.NI_NOFQDN;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>NI_NUMERICHOST = GlobalSock.NI_NUMERICHOST;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NI_NAMEREQD = GlobalSock.NI_NAMEREQD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NI_NUMERICSERV = GlobalSock.NI_NUMERICSERV;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NI_DGRAM = GlobalSock.NI_DGRAM;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>NI_MAXHOST = GlobalSock.NI_MAXHOST;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NI_MAXSERV = GlobalSock.NI_MAXSERV;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
=== Type definitions === | === Type definitions === | ||
---- | ---- | ||
− | '' | + | See globalsock.pas |
+ | |||
+ | === Class definitions === | ||
+ | ---- | ||
+ | |||
+ | |||
+ | '''Base socket classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2Socket|<code>TWinsock2Socket = class(TListObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2SocketThread|<code>TWinsock2SocketThread = class(TThreadEx)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2SocketThreads|<code>TWinsock2SocketThreads = class(TObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2SocketBuffer|<code>TWinsock2SocketBuffer = class(TObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2SocketBuffers|<code>TWinsock2SocketBuffers = class(TObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Raw socket (SOCK_RAW) classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2RAWSocket|<code>TWinsock2RAWSocket = class(TWinsock2Socket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Stream socket (SOCK_STREAM) classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPSocket|<code>TWinsock2TCPSocket = class(TWinsock2Socket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Datagram socket (SOCK_DGRAM) classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPSocket|<code>TWinsock2UDPSocket = class(TWinsock2Socket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Raw client classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2RAWClient|<code>TWinsock2RAWClient = class(TWinsock2RAWSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Stream client classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPClient|<code>TWinsock2TCPClient = class(TWinsock2TCPSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Datagram client classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPClient|<code>TWinsock2UDPClient = class(TWinsock2UDPSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Stream server classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPServer|<code>TWinsock2TCPServer = class(TWinsock2TCPSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPServerThread|<code>TWinsock2TCPServerThread = class(TWinsock2SocketThread)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPListenerThread|<code>TWinsock2TCPListenerThread = class(TWinsock2SocketThread)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPServerThreads|<code>TWinsock2TCPServerThreads = class(TWinsock2SocketThreads)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2TCPListener|<code>TWinsock2TCPListener = class(TWinsock2TCPSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Datagram server classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPServer|<code>TWinsock2UDPServer = class(TWinsock2UDPSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPServerThread|<code>TWinsock2UDPServerThread = class(TWinsock2SocketThread)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPListenerThread|<code>TWinsock2UDPListenerThread = class(TWinsock2SocketThread)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPServerThreads|<code>TWinsock2UDPServerThreads = class(TWinsock2SocketThreads)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPServerBuffer|<code>TWinsock2UDPServerBuffer = class(TWinsock2SocketBuffer)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPServerBuffers|<code>TWinsock2UDPServerBuffers = class(TWinsock2SocketBuffers)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TWinsock2UDPListener|<code>TWinsock2UDPListener = class(TWinsock2UDPSocket)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Public variables === | === Public variables === | ||
---- | ---- | ||
− | '' | + | ''None defined'' |
=== Function declarations === | === Function declarations === | ||
Line 34: | Line 2,216: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 46: | Line 2,228: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 58: | Line 2,240: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 70: | Line 2,252: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 85: | Line 2,267: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 97: | Line 2,279: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 109: | Line 2,291: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 121: | Line 2,303: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 133: | Line 2,315: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 145: | Line 2,327: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 157: | Line 2,339: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 169: | Line 2,351: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 181: | Line 2,363: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 193: | Line 2,375: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 205: | Line 2,387: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 217: | Line 2,399: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 229: | Line 2,411: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 241: | Line 2,423: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 253: | Line 2,435: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 265: | Line 2,447: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 277: | Line 2,459: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 289: | Line 2,471: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! 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. | | 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. | ||
|- | |- | ||
Line 301: | Line 2,483: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 313: | Line 2,495: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 325: | Line 2,507: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 337: | Line 2,519: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 349: | Line 2,531: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 361: | Line 2,543: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 373: | Line 2,555: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 385: | Line 2,567: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 397: | Line 2,579: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 409: | Line 2,591: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | All sockets contained | + | | All sockets contained by the FDSet must be of the same type |
|- | |- | ||
|} | |} | ||
Line 421: | Line 2,603: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 433: | Line 2,615: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 445: | Line 2,627: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 457: | Line 2,639: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 469: | Line 2,651: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 481: | Line 2,663: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 493: | Line 2,675: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 505: | Line 2,687: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 517: | Line 2,699: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 529: | Line 2,711: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 541: | Line 2,723: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 553: | Line 2,735: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 565: | Line 2,747: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 577: | Line 2,759: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 589: | Line 2,771: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 601: | Line 2,783: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 613: | Line 2,795: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 625: | Line 2,807: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 637: | Line 2,819: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 649: | Line 2,831: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 661: | Line 2,843: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 673: | Line 2,855: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 685: | Line 2,867: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 692: | Line 2,874: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">procedure WSASetLastError(iError: Longint);</pre> | + | <pre style="border: 0; padding-bottom:0px;">procedure WSASetLastError(iError: Longint); inline;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 704: | Line 2,886: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function WSAGetLastError: Longint;</pre> | + | <pre style="border: 0; padding-bottom:0px;">function WSAGetLastError: Longint; inline;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 721: | Line 2,903: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 733: | Line 2,915: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 745: | Line 2,927: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 757: | Line 2,939: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 769: | Line 2,951: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 781: | Line 2,963: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 793: | Line 2,975: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 805: | Line 2,987: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 817: | Line 2,999: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 829: | Line 3,011: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 841: | Line 3,023: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! '''Note''' | + | ! Note |
− | | To be documented | + | | None documented |
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WSAMakeSyncReply(Buflen, Error: Word): Longint;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WSAMakeSelectReply(Event, Error: Word): Longint;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WSAGetAsyncBuflen(Param: Longint): Word;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WSAGetAsyncError(Param: Longint): Word;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WSAGetSelectEvent(Param: Longint): Word;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WSAGetSelectError(Param: Longint): Word;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">procedure FD_SET(Socket: TSocket; var FDSet: TFDSet);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">procedure FD_ZERO(var FDSet: TFDSet);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | |||
+ | '''Winsock2 undocumented functions''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WsControl(Proto:DWORD; Action:DWORD; pRequestInfo:Pointer; var pcbRequestInfoLen:DWORD; pResponseInfo:Pointer; var pcbResponseInfoLen:DWORD):Integer;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function getnetbyaddr(addr: Pointer; len, Struct: Integer): PNetEnt;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function getnetbyname(name: PChar): PNetEnt;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | |||
+ | '''Winsock2 enhanced functions''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function WsControlEx(Proto:DWORD; Action:DWORD; pRequestInfo:Pointer; var pcbRequestInfoLen:DWORD; pResponseInfo:Pointer; var pcbResponseInfoLen:DWORD):Integer;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | |||
+ | '''RTL text IO functions''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function SysTextIOReadChar(var ACh:Char; AUserData:Pointer):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Handler for platform TextIOReadChar function</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | Not intended to be called directly by applications | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function SysTextIOWriteChar(ACh:Char; AUserData:Pointer):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Handler for platform TextIOWriteChar function</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | Not intended to be called directly by applications | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function SysTextIOWriteBuffer(ABuffer:PChar; ACount:LongInt; AUserData:Pointer):LongInt;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Handler for platform TextIOWriteBuffer function</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | Not intended to be called directly by applications | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | |||
+ | '''Winsock2 helper functions''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function Winsock2RedirectInput(s:TSocket):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Redirect standard input to the socket specified by s</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! s | ||
+ | | The socket to redirect input to (or INVALID_SOCKET to stop redirection) | ||
+ | |- | ||
+ | ! Return | ||
+ | | True if completed successfully or False if an error occurred | ||
+ | |- | ||
+ | ! Note | ||
+ | | Redirects the input of the text file Input which also redirects the input of Read, ReadLn and the standard C library. | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function Winsock2RedirectOutput(s:TSocket):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Redirect standard output to the socket specified by s</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! s | ||
+ | | The socket to redirect output to (or INVALID_SOCKET to stop redirection) | ||
+ | |- | ||
+ | ! Return | ||
+ | | True if completed successfully or False if an error occurred | ||
+ | |- | ||
+ | ! Note | ||
+ | | Redirects the output of the text files Output, ErrOutput, StdOut and StdErr which also redirects the output of Write, WriteLn and the standard C library. | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function Winsock2ErrorToString(AError:LongInt):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
|- | |- | ||
|} | |} |
Latest revision as of 05:34, 31 August 2021
Return to Unit Reference
Contents
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 = GlobalSock.SOMAXCONN;
|
|
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
IPPROTO_*
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
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
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
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
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
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
UDP_*
UDP_NOCHECKSUM = GlobalSock.UDP_NOCHECKSUM;
|
Address family
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
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
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
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
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
CF_*
WinSock 2 extension -- manifest constants for return values of the condition function | |
CF_ACCEPT = $0000;
|
|
CF_REJECT = $0001;
|
|
CF_DEFER = $0002;
|
Shutdown option
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
SG_*
WinSock 2 extension -- data type and manifest constants for socket groups | |
SG_UNCONSTRAINED_GROUP = $01;
|
|
SG_CONSTRAINED_GROUP = $02;
|
Provider flag
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
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
JL_*
WinSock 2 extension -- manifest constants for WSAJoinLeaf() | |
JL_SENDER_ONLY = $01;
|
|
JL_RECEIVER_ONLY = $02;
|
|
JL_BOTH = $04;
|
Socket flag
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
IOC_*
WinSock 2 extension -- manifest constants for WSAIoctl() | |
IOC_UNIX = $00000000;
|
|
IOC_WS2 = $08000000;
|
|
IOC_PROTOCOL = $10000000;
|
|
IOC_VENDOR = $18000000;
|
SIO option
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
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
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
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
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;
|
Address info flag
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
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
See globalsock.pas
Class definitions
Base socket classes
TWinsock2Socket = class(TListObject)
|
TWinsock2SocketThread = class(TThreadEx)
|
TWinsock2SocketThreads = class(TObject)
|
TWinsock2SocketBuffer = class(TObject)
|
TWinsock2SocketBuffers = class(TObject)
|
Raw socket (SOCK_RAW) classes
TWinsock2RAWSocket = class(TWinsock2Socket)
|
Stream socket (SOCK_STREAM) classes
TWinsock2TCPSocket = class(TWinsock2Socket)
|
Datagram socket (SOCK_DGRAM) classes
TWinsock2UDPSocket = class(TWinsock2Socket)
|
Raw client classes
TWinsock2RAWClient = class(TWinsock2RAWSocket)
|
Stream client classes
TWinsock2TCPClient = class(TWinsock2TCPSocket)
|
Datagram client classes
TWinsock2UDPClient = class(TWinsock2UDPSocket)
|
Stream server classes
TWinsock2TCPServer = class(TWinsock2TCPSocket)
|
TWinsock2TCPServerThread = class(TWinsock2SocketThread)
|
TWinsock2TCPListenerThread = class(TWinsock2SocketThread)
|
TWinsock2TCPServerThreads = class(TWinsock2SocketThreads)
|
TWinsock2TCPListener = class(TWinsock2TCPSocket)
|
Datagram server classes
TWinsock2UDPServer = class(TWinsock2UDPSocket)
|
TWinsock2UDPServerThread = class(TWinsock2SocketThread)
|
TWinsock2UDPListenerThread = class(TWinsock2SocketThread)
|
TWinsock2UDPServerThreads = class(TWinsock2SocketThreads)
|
TWinsock2UDPServerBuffer = class(TWinsock2SocketBuffer)
|
TWinsock2UDPServerBuffers = class(TWinsock2SocketBuffers)
|
TWinsock2UDPListener = class(TWinsock2UDPSocket)
|
Public variables
None defined
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 by the FDSet must be 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); inline;
Description: To be documented
Note | None documented |
---|
function WSAGetLastError: Longint; inline;
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 |
---|
RTL text IO functions
function SysTextIOReadChar(var ACh:Char; AUserData:Pointer):Boolean;
Description: Handler for platform TextIOReadChar function
Note | Not intended to be called directly by applications |
---|
function SysTextIOWriteChar(ACh:Char; AUserData:Pointer):Boolean;
Description: Handler for platform TextIOWriteChar function
Note | Not intended to be called directly by applications |
---|
function SysTextIOWriteBuffer(ABuffer:PChar; ACount:LongInt; AUserData:Pointer):LongInt;
Description: Handler for platform TextIOWriteBuffer function
Note | Not intended to be called directly by applications |
---|
Winsock2 helper functions
function Winsock2RedirectInput(s:TSocket):Boolean;
Description: Redirect standard input to the socket specified by s
s | The socket to redirect input to (or INVALID_SOCKET to stop redirection) |
---|---|
Return | True if completed successfully or False if an error occurred |
Note | Redirects the input of the text file Input which also redirects the input of Read, ReadLn and the standard C library. |
function Winsock2RedirectOutput(s:TSocket):Boolean;
Description: Redirect standard output to the socket specified by s
s | The socket to redirect output to (or INVALID_SOCKET to stop redirection) |
---|---|
Return | True if completed successfully or False if an error occurred |
Note | Redirects the output of the text files Output, ErrOutput, StdOut and StdErr which also redirects the output of Write, WriteLn and the standard C library. |
function Winsock2ErrorToString(AError:LongInt):String;
Description: To be documented
Note | None documented |
---|
Return to Unit Reference