Difference between revisions of "Unit Winsock2"
From Ultibo.org
| Line 964: | Line 964: | ||
|- | |- | ||
| <code>MSG_DONTROUTE = GlobalSock.MSG_DONTROUTE;</code> | | <code>MSG_DONTROUTE = GlobalSock.MSG_DONTROUTE;</code> | ||
| + | | | ||
| + | |- | ||
| + | | <code>MSG_WAITALL = GlobalSock.MSG_WAITALL;</code> | ||
| | | | ||
|- | |- | ||
| Line 1,695: | Line 1,698: | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
| − | | <code>WSA_FLAG_OVERLAPPED = | + | | <code>WSA_FLAG_OVERLAPPED = GlobalSock.WSA_FLAG_OVERLAPPED;</code> |
| style="width: 50%;"| | | style="width: 50%;"| | ||
|- | |- | ||
| − | | <code>WSA_FLAG_MULTIPOINT_C_ROOT = | + | | <code>WSA_FLAG_MULTIPOINT_C_ROOT = GlobalSock.WSA_FLAG_MULTIPOINT_C_ROOT;</code> |
| | | | ||
|- | |- | ||
| − | | <code>WSA_FLAG_MULTIPOINT_C_LEAF = | + | | <code>WSA_FLAG_MULTIPOINT_C_LEAF = GlobalSock.WSA_FLAG_MULTIPOINT_C_LEAF;</code> |
| | | | ||
|- | |- | ||
| − | | <code>WSA_FLAG_MULTIPOINT_D_ROOT = | + | | <code>WSA_FLAG_MULTIPOINT_D_ROOT = GlobalSock.WSA_FLAG_MULTIPOINT_D_ROOT;</code> |
| | | | ||
|- | |- | ||
| − | | <code>WSA_FLAG_MULTIPOINT_D_LEAF = | + | | <code>WSA_FLAG_MULTIPOINT_D_LEAF = GlobalSock.WSA_FLAG_MULTIPOINT_D_LEAF;</code> |
| | | | ||
|- | |- | ||
Revision as of 05:44, 31 July 2025
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 byte order.
- All other functions that take an Address or Port expect them to be in Host byte 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_ANY = GlobalSock.INET6_ADDRSTR_ANY;
|
|
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));
|
|
IN6ADDR_NONE:TIn6Addr = (u6_addr16: ($ffff, $ffff, $ffff, $ffff, $ffff, $ffff, $ffff, $ffff));
|
|
| 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;
|
|
| WSARecvMsg flags | |
MSG_TRUNC = $0100;
|
|
MSG_CTRUNC = $0200;
|
|
MSG_BCAST = $0400;
|
|
MSG_MCAST = $0800;
|
|
| Event flag definitions for WSAPoll() | |
POLLRDNORM = $0100;
|
|
POLLRDBAND = $0200;
|
|
POLLIN = (POLLRDNORM or POLLRDBAND);
|
|
POLLPRI = $0400;
|
|
POLLWRNORM = $0010;
|
|
POLLOUT = (POLLWRNORM);
|
|
POLLWRBAND = $0020;
|
|
POLLERR = $0001;
|
|
POLLHUP = $0002;
|
|
POLLNVAL = $0004;
|
|
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;
|
|
SO_EXCLUSIVEADDRUSE = GlobalSock.SO_EXCLUSIVEADDRUSE;
|
|
| 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_WAITALL = GlobalSock.MSG_WAITALL;
|
|
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 = GlobalSock.WSA_FLAG_OVERLAPPED;
|
|
WSA_FLAG_MULTIPOINT_C_ROOT = GlobalSock.WSA_FLAG_MULTIPOINT_C_ROOT;
|
|
WSA_FLAG_MULTIPOINT_C_LEAF = GlobalSock.WSA_FLAG_MULTIPOINT_C_LEAF;
|
|
WSA_FLAG_MULTIPOINT_D_ROOT = GlobalSock.WSA_FLAG_MULTIPOINT_D_ROOT;
|
|
WSA_FLAG_MULTIPOINT_D_LEAF = GlobalSock.WSA_FLAG_MULTIPOINT_D_LEAF;
|
|
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 | Address will be returned in network order |
|---|
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.
Address will be in network order |
|---|
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 | Address will be in network order where applicable |
|---|
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 | Port will be in network order |
|---|
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: RFC 3493 protocol-independent translation from a host name to an address
| Note | None documented |
|---|
procedure freeaddrinfo(ai: PAddrInfo);
Description: Free address information that GetAddrInfo dynamically allocates in TAddrInfo structures
| Note | None documented |
|---|
function getnameinfo(sa: PSockAddr; salen: Integer; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Integer): Integer;
Description: RFC 3493 protocol-independent name resolution from an address to a host name and a port number to a service name
| Note | None documented |
|---|
function Gai_StrError(ecode: Longint): PChar;
Description: Return an error message for an error code returned by GetAddrInfo or GetNameInfo
| 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 | Address will be returned in network order where applicable |
|---|
function InetPtonA(Family: Longint; pszAddrString: PChar; pAddrBuf: Pointer): Longint;
Description: To be documented
| Note | Address will be returned in network order where applicable |
|---|
function InetPtonW(Family: Longint; pszAddrString: PWideChar; pAddrBuf: Pointer): Longint;
Description: To be documented
| Note | Address will be returned in network order where applicable |
|---|
function inet_ntop(Family: Longint; pAddr: Pointer; pStringBuf: PChar; StringBufSize: Longint): PChar;
Description: To be documented
| Note | Address will be in network order where applicable |
|---|
function InetNtopA(Family: Longint; pAddr: Pointer; pStringBuf: PChar; StringBufSize: Longint): PChar;
Description: To be documented
| Note | Address will be in network order where applicable |
|---|
function InetNtopW(Family: Longint; pAddr: Pointer; pStringBuf: PWideChar; StringBufSize: Longint): PWideChar;
Description: To be documented
| Note | Address will be in network order where applicable |
|---|
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 | Address will be in network order where applicable |
|---|
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