Difference between revisions of "Unit Sockets"
(16 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
---- | ---- | ||
+ | '''Ultibo Network Sockets Interface unit''' | ||
+ | |||
+ | This unit incorporates the socketsh.inc header from rtl-extra and adds Ultibo specific functionality. The unit can then be used in place of the sockets unit normally provided by the rtl-extra package. | ||
+ | |||
+ | Notes: All BSD 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 | ||
+ | |||
This unit includes the interface normally provided by the sockets unit in the FPC package rtl-extras. The rtl-extras package does not build the sockets unit for target Ultibo as this unit will always be available to provide the required functionality for any other package that uses it. | This unit includes the interface normally provided by the sockets unit in the FPC package rtl-extras. The rtl-extras package does not build the sockets unit for target Ultibo as this unit will always be available to provide the required functionality for any other package that uses it. | ||
Line 10: | Line 16: | ||
---- | ---- | ||
− | '' | + | |
+ | <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;">'''Sockets specific constants''' <code> SOCKETS_* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>SOCKETS_DEVICE_TIMER_INTERVAL = 100;</code> | ||
+ | | Timer interval for new device additions | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>SOCKETS_CONFIG_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKETS_FILTER_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKETS_PROTOCOL_TIMER_INTERVAL = 250;</code> | ||
+ | | Previously 100 | ||
+ | |- | ||
+ | | <code>SOCKETS_SOCKET_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKETS_AUTH_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKETS_MONITOR_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKETS_TRANSPORT_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SOCKETS_ADAPTER_TIMER_INTERVAL = 1000;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>INADDR_ANY = GlobalSock.INADDR_ANY;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>INADDR_NONE = GlobalSock.INADDR_NONE;</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"|''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"| | ||
+ | |- | ||
+ | | <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>NoAddress: in_addr = (s_addr:0);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NoNet: in_addr = (s_addr:0);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NoAddress6: in6_addr = (u6_addr16:(0,0,0,0,0,0,0,0));</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NoNet6: in6_addr = (u6_addr16:(0,0,0,0,0,0,0,0));</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FD_MAXFDSET = 1024;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BITSINWORD = 8 * SizeOf(culong);</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> Esock*, EAI_* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>EsockEINTR = WSAEINTR;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>EsockEBADF = WSAEBADF;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEFAULT = WSAEFAULT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEINVAL = WSAEINVAL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEACCESS = WSAEACCES;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEMFILE = WSAEMFILE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEMSGSIZE = WSAEMSGSIZE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockENOBUFS = WSAENOBUFS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockENOTCONN = WSAENOTCONN;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockENOTSOCK = WSAENOTSOCK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEPROTONOSUPPORT = WSAEPROTONOSUPPORT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockEWOULDBLOCK = WSAEWOULDBLOCK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EsockADDRINUSE = WSAEADDRINUSE;</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;">'''Socket shutdown option''' <code> SHUT_* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>SHUT_RD = SD_RECEIVE;</code> | ||
+ | | Aliases so we are cross-platform | ||
+ | |- | ||
+ | | <code>SHUT_WR = SD_SEND;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SHUT_RDWR = 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 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_STREAM = GlobalSock.SOCK_STREAM;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <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> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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 input and output''' <code> S_IN* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Two constants to determine whether part of socket is for in or output | ||
+ | |- | ||
+ | | <code>S_IN = 0;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>S_OUT = 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;">'''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;">'''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> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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;" | ||
+ | |- | ||
+ | |colspan="2"|Option flags per-socket | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <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"|''Options 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;">'''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> | ||
+ | | | ||
+ | |- | ||
+ | |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;">'''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 === | ||
---- | ---- | ||
− | '' | + | |
+ | '''Sockets device event''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PSocketsDeviceEvent = ^TSocketsDeviceEvent;</code> | ||
+ | |||
+ | <code>TSocketsDeviceEvent = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>Timer:TTimerHandle;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>Device:PNetworkDevice;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Numeric types''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>sa_family_t = cushort;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Integer types''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>size_t = GlobalTypes.SIZE_T;</code> | ||
+ | | style="width: 40%;"|cuint32; | ||
+ | |- | ||
+ | | <code>ssize_t = GlobalTypes.SSIZE_T;</code> | ||
+ | | style="width: 40%;"|cint32; | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket length''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>tsocklen = cint;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>psocklen = ^tsocklen;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''IPv4 address''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>pin_addr = ^in_addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>in_addr = GlobalSock.in_addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TIn_addr = in_addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TInAddr = GlobalSock.TInAddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>PInAddr = GlobalSock.PInAddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Internet socket address''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TInetSockAddr = sockaddr_in;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>PInetSockAddr = psockaddr_in;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket address''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>psockaddr = GlobalSock.psockaddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>sockaddr = GlobalSock.TSockAddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TSockAddr = GlobalSock.TSockAddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>psockaddr_in = ^sockaddr_in;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>sockaddr_in = GlobalSock.sockaddr_in;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''FD set type''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TFDSet = array[0..(FD_MAXFDSET div BITSINWORD) - 1] of culong;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>PFDSet = ^TFDSet;</code> | ||
+ | | style="width: 40%;"|Legacy | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''TimeVal type''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>time_t = PtrInt;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Time value''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PTimeVal = ^timeval;</code> | ||
+ | |||
+ | <code>TTimeVal = timeval;</code> | ||
+ | |||
+ | <code>timeval = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>tv_sec:time_t;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>tv_usec:clong;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Linger''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>plinger = GlobalSock.plinger;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>linger = GlobalSock.linger;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TLinger = GlobalSock.TLinger;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''IPv6 address''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>pin6_addr = ^in6_addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>in6_addr = GlobalSock.in6_addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>Tin6_addr = in6_addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TIn6Addr = GlobalSock.TIn6Addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>PIn6Addr = GlobalSock.PIn6Addr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket address IPv6''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>psockaddr_in6 = ^sockaddr_in6;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>sockaddr_in6 = GlobalSock.sockaddr_in6;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TInetSockAddr6 = sockaddr_in6;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>PInetSockAddr6 = psockaddr_in6;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket pair''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TSockPairArray = array[0..1] of Longint;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TSockArray = array[1..2] of Longint;</code> | ||
+ | | style="width: 40%;"|Legacy | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket address''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>psockaddr_un = ^sockaddr_un;</code> | ||
+ | |||
+ | <code>sockaddr_un = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>sun_family:sa_family_t;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>sun_path:array[0..107] of char;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Address information''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAddrInfo = GlobalSock.PAddrInfo;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TAddrInfo = GlobalSock.TAddrInfo;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Public variables === | === Public variables === | ||
---- | ---- | ||
− | '' | + | ''None defined'' |
=== Function declarations === | === Function declarations === | ||
Line 34: | Line 1,250: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 46: | Line 1,262: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 58: | Line 1,274: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 70: | Line 1,286: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 85: | Line 1,301: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 97: | Line 1,313: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 109: | Line 1,325: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 121: | Line 1,337: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 133: | Line 1,349: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 145: | Line 1,361: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 157: | Line 1,373: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 169: | Line 1,385: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 181: | Line 1,397: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 193: | Line 1,409: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 205: | Line 1,421: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 217: | Line 1,433: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 229: | Line 1,445: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 241: | Line 1,457: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 253: | Line 1,469: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 265: | Line 1,481: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 277: | Line 1,493: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 289: | Line 1,505: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 301: | Line 1,517: | ||
{| 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 Sockets function call is made within the same thread. Therefore, the data should be copied before another Sockets call | + | | As per the Winsock specification, the buffer returned by this function is only guaranteed to be valid until the next Sockets function call is made within the same thread. Therefore, the data should be copied before another Sockets call. |
+ | |- | ||
+ | |} | ||
+ | </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 Inet_Aton(cp: PChar; inaddr: PInAddr): 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 | ||
|- | |- | ||
|} | |} | ||
Line 313: | Line 1,541: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 325: | Line 1,553: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 337: | Line 1,565: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 349: | Line 1,577: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 361: | Line 1,589: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 373: | Line 1,601: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 385: | Line 1,613: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 397: | Line 1,625: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 409: | Line 1,637: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 421: | Line 1,649: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 433: | Line 1,661: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 445: | Line 1,673: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 457: | Line 1,685: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 469: | Line 1,697: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 484: | Line 1,712: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 496: | Line 1,724: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 508: | Line 1,736: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 520: | Line 1,748: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 532: | Line 1,760: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 544: | Line 1,772: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 556: | Line 1,784: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 568: | Line 1,796: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 580: | Line 1,808: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 592: | Line 1,820: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 604: | Line 1,832: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 616: | Line 1,844: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 628: | Line 1,856: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 640: | Line 1,868: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 652: | Line 1,880: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 659: | Line 1,887: | ||
<br /> | <br /> | ||
− | '''RTL | + | '''RTL select 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 fpselect(n:cint; readfds, writefds, exceptfds: PFDSet; TimeOut: PTimeVal):cint;</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 file/text sockets functions''' | ||
<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;"> | ||
Line 667: | Line 1,910: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 679: | Line 1,922: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 691: | Line 1,934: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 703: | Line 1,946: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 715: | Line 1,958: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 727: | Line 1,970: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 739: | Line 1,982: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 751: | Line 1,994: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 763: | Line 2,006: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 775: | Line 2,018: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 787: | Line 2,030: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 799: | Line 2,042: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 811: | Line 2,054: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 823: | Line 2,066: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 838: | Line 2,081: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 850: | Line 2,093: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 862: | Line 2,105: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 874: | Line 2,117: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 886: | Line 2,129: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 898: | Line 2,141: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 910: | Line 2,153: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 922: | Line 2,165: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 934: | Line 2,177: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 946: | Line 2,189: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! '''Note''' | + | ! 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 SocketsNetworkDeviceUp(Network:PNetworkDevice):LongWord;</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 SocketsNetworkDeviceDown(Network:PNetworkDevice):LongWord;</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 | | None documented | ||
|- | |- | ||
Line 958: | Line 2,225: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 970: | Line 2,237: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 985: | Line 2,252: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 997: | Line 2,264: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,009: | Line 2,276: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,021: | Line 2,288: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,033: | Line 2,300: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,045: | Line 2,312: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,057: | Line 2,324: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,069: | Line 2,336: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,081: | Line 2,348: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,093: | Line 2,360: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,105: | Line 2,372: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,117: | Line 2,384: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,129: | Line 2,396: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,141: | Line 2,408: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,153: | Line 2,420: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,165: | Line 2,432: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,177: | Line 2,444: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,189: | Line 2,456: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,201: | Line 2,468: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- |
Latest revision as of 05:32, 31 August 2021
Return to Unit Reference
Description
Ultibo Network Sockets Interface unit
This unit incorporates the socketsh.inc header from rtl-extra and adds Ultibo specific functionality. The unit can then be used in place of the sockets unit normally provided by the rtl-extra package.
Notes: All BSD 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
This unit includes the interface normally provided by the sockets unit in the FPC package rtl-extras. The rtl-extras package does not build the sockets unit for target Ultibo as this unit will always be available to provide the required functionality for any other package that uses it.
Constants
SOCKETS_*
SOCKETS_DEVICE_TIMER_INTERVAL = 100;
|
Timer interval for new device additions |
SOCKETS_CONFIG_TIMER_INTERVAL = 1000;
|
|
SOCKETS_FILTER_TIMER_INTERVAL = 1000;
|
|
SOCKETS_PROTOCOL_TIMER_INTERVAL = 250;
|
Previously 100 |
SOCKETS_SOCKET_TIMER_INTERVAL = 1000;
|
|
SOCKETS_AUTH_TIMER_INTERVAL = 1000;
|
|
SOCKETS_MONITOR_TIMER_INTERVAL = 1000;
|
|
SOCKETS_TRANSPORT_TIMER_INTERVAL = 1000;
|
|
SOCKETS_ADAPTER_TIMER_INTERVAL = 1000;
|
|
INADDR_ANY = GlobalSock.INADDR_ANY;
|
|
INADDR_NONE = GlobalSock.INADDR_NONE;
|
|
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;
|
|
This is used instead of -1, since the TSocket type is unsigned | |
INVALID_SOCKET = GlobalSock.INVALID_SOCKET;
|
|
SOCKET_ERROR = GlobalSock.SOCKET_ERROR;
|
|
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));
|
|
NoAddress: in_addr = (s_addr:0);
|
|
NoNet: in_addr = (s_addr:0);
|
|
NoAddress6: in6_addr = (u6_addr16:(0,0,0,0,0,0,0,0));
|
|
NoNet6: in6_addr = (u6_addr16:(0,0,0,0,0,0,0,0));
|
|
FD_MAXFDSET = 1024;
|
|
BITSINWORD = 8 * SizeOf(culong);
|
Esock*, EAI_*
EsockEINTR = WSAEINTR;
|
|
EsockEBADF = WSAEBADF;
|
|
EsockEFAULT = WSAEFAULT;
|
|
EsockEINVAL = WSAEINVAL;
|
|
EsockEACCESS = WSAEACCES;
|
|
EsockEMFILE = WSAEMFILE;
|
|
EsockEMSGSIZE = WSAEMSGSIZE;
|
|
EsockENOBUFS = WSAENOBUFS;
|
|
EsockENOTCONN = WSAENOTCONN;
|
|
EsockENOTSOCK = WSAENOTSOCK;
|
|
EsockEPROTONOSUPPORT = WSAEPROTONOSUPPORT;
|
|
EsockEWOULDBLOCK = WSAEWOULDBLOCK;
|
|
EsockADDRINUSE = WSAEADDRINUSE;
|
|
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;
|
SHUT_*
SHUT_RD = SD_RECEIVE;
|
Aliases so we are cross-platform |
SHUT_WR = SD_SEND;
|
|
SHUT_RDWR = SD_BOTH;
|
SOCK_*
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;
|
S_IN*
Two constants to determine whether part of socket is for in or output | |
S_IN = 0;
|
|
S_OUT = 1;
|
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;
|
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;
|
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;
|
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_*
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;
|
SO_*
Option flags per-socket | |
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;
|
|
Options 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_*
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_*
UDP_NOCHECKSUM = GlobalSock.UDP_NOCHECKSUM;
|
MSG_*
MSG_OOB = GlobalSock.MSG_OOB;
|
|
MSG_PEEK = GlobalSock.MSG_PEEK;
|
|
MSG_DONTROUTE = GlobalSock.MSG_DONTROUTE;
|
|
MSG_INTERRUPT = GlobalSock.MSG_INTERRUPT;
|
|
MSG_PARTIAL = GlobalSock.MSG_PARTIAL;
|
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;
|
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
Sockets device event
PSocketsDeviceEvent = ^TSocketsDeviceEvent;
TSocketsDeviceEvent = record
Timer:TTimerHandle;
|
|
Device:PNetworkDevice;
|
Numeric types
sa_family_t = cushort;
|
Integer types
size_t = GlobalTypes.SIZE_T;
|
cuint32; |
ssize_t = GlobalTypes.SSIZE_T;
|
cint32; |
Socket length
tsocklen = cint;
|
|
psocklen = ^tsocklen;
|
IPv4 address
pin_addr = ^in_addr;
|
|
in_addr = GlobalSock.in_addr;
|
|
TIn_addr = in_addr;
|
|
TInAddr = GlobalSock.TInAddr;
|
|
PInAddr = GlobalSock.PInAddr;
|
Internet socket address
TInetSockAddr = sockaddr_in;
|
|
PInetSockAddr = psockaddr_in;
|
Socket address
psockaddr = GlobalSock.psockaddr;
|
|
sockaddr = GlobalSock.TSockAddr;
|
|
TSockAddr = GlobalSock.TSockAddr;
|
|
psockaddr_in = ^sockaddr_in;
|
|
sockaddr_in = GlobalSock.sockaddr_in;
|
FD set type
TFDSet = array[0..(FD_MAXFDSET div BITSINWORD) - 1] of culong;
|
|
PFDSet = ^TFDSet;
|
Legacy |
TimeVal type
time_t = PtrInt;
|
Time value
PTimeVal = ^timeval;
TTimeVal = timeval;
timeval = record
tv_sec:time_t;
|
|
tv_usec:clong;
|
Linger
plinger = GlobalSock.plinger;
|
|
linger = GlobalSock.linger;
|
|
TLinger = GlobalSock.TLinger;
|
IPv6 address
pin6_addr = ^in6_addr;
|
|
in6_addr = GlobalSock.in6_addr;
|
|
Tin6_addr = in6_addr;
|
|
TIn6Addr = GlobalSock.TIn6Addr;
|
|
PIn6Addr = GlobalSock.PIn6Addr;
|
Socket address IPv6
psockaddr_in6 = ^sockaddr_in6;
|
|
sockaddr_in6 = GlobalSock.sockaddr_in6;
|
|
TInetSockAddr6 = sockaddr_in6;
|
|
PInetSockAddr6 = psockaddr_in6;
|
Socket pair
TSockPairArray = array[0..1] of Longint;
|
|
TSockArray = array[1..2] of Longint;
|
Legacy |
Socket address
psockaddr_un = ^sockaddr_un;
sockaddr_un = packed record
sun_family:sa_family_t;
|
|
sun_path:array[0..107] of char;
|
Address information
PAddrInfo = GlobalSock.PAddrInfo;
|
|
TAddrInfo = GlobalSock.TAddrInfo;
|
Public variables
None defined
Function declarations
Initialization functions
procedure SocketsInit;
Note | None documented |
---|
function SocketsStart:LongWord;
Note | None documented |
---|
function SocketsStop:LongWord;
Note | None documented |
---|
procedure SocketsAsyncStart(Data:Pointer);
Note | None documented |
---|
Sockets functions
function SocketError: cint;
Note | None documented |
---|
function Socket(Domain,SocketType,Protocol:Longint):Longint;
Note | None documented |
---|
function Send(Sock:Longint; const Buf; BufLen,Flags:Longint):Longint;
Note | None documented |
---|
function SendTo(Sock:Longint; const Buf; BufLen,Flags:Longint; var Addr; AddrLen : Longint):Longint;
Note | None documented |
---|
function Recv(Sock:Longint; var Buf; BufLen,Flags:Longint):Longint;
Note | None documented |
---|
function RecvFrom(Sock : Longint; var Buf; Buflen,Flags : Longint; var Addr; var AddrLen : longint) : longint;
Note | None documented |
---|
function Connect(Sock:Longint; const Addr; Addrlen:Longint):Boolean;
Note | None documented |
---|
function Shutdown(Sock:Longint; How:Longint):Longint;
Note | None documented |
---|
function Bind(Sock:Longint; const Addr; AddrLen:Longint):Boolean;
Note | None documented |
---|
function Listen(Sock,MaxConnect:Longint):Boolean;
Note | None documented |
---|
function Accept(Sock:Longint; var Addr; var Addrlen:Longint):Longint;
Note | None documented |
---|
function GetSocketName(Sock:Longint; var Addr; var Addrlen:Longint):Longint;
Note | None documented |
---|
function GetPeerName(Sock:Longint; var Addr; var Addrlen:Longint):Longint;
Note | None documented |
---|
function GetSocketOptions(Sock,Level,OptName:Longint; var OptVal; var optlen:longint):Longint;
Note | None documented |
---|
function SetSocketOptions(Sock,Level,OptName:Longint; const OptVal; optlen:longint):Longint;
Note | None documented |
---|
function SocketPair(Domain,SocketType,Protocol:Longint; var Pair:TSockArray):Longint;
Note | None documented |
---|
function CloseSocket(Sock:Longint):Longint;
Note | None documented |
---|
function Inet_Addr(cp: PChar): Longint;
Note | None documented |
---|
function Inet_Ntoa(inaddr: TInAddr): PChar;
Note | As per the Winsock specification, the buffer returned by this function is only guaranteed to be valid until the next Sockets function call is made within the same thread. Therefore, the data should be copied before another Sockets call. |
---|
function Inet_Aton(cp: PChar; inaddr: PInAddr): Longint;
Note | None documented |
---|
function Inet_Pton(family: Longint; Source: PChar; Dest: Pointer): Longint;
Note | None documented |
---|
function Inet_Ntop(family: Longint; Source: Pointer; Dest: PChar; Size: Longint): PChar;
Note | None documented |
---|
function GetHostByAddr(addr: Pointer; len, family: Longint): PHostEnt;
Note | None documented |
---|
function GetHostByName(name: PChar): PHostEnt;
Note | None documented |
---|
function GetHostName(name: PChar; len: Longint): Longint;
Note | None documented |
---|
function GetNetByAddr(addr: Pointer; len, Struct: Integer): PNetEnt;
Note | None documented |
---|
function GetNetByName(name: PChar): PNetEnt;
Note | None documented |
---|
function GetServByPort(port: Longint; proto: PChar): PServEnt;
Note | None documented |
---|
function GetServByName(name, proto: PChar): PServEnt;
Note | None documented |
---|
function GetProtoByNumber(proto: Longint): PProtoEnt;
Note | None documented |
---|
function GetProtoByName(name: PChar): PProtoEnt;
Note | None documented |
---|
function GetAddrInfo(HostName, ServName: PChar; Hints: PAddrInfo; var Addr: PAddrInfo): Longint;
Note | None documented |
---|
procedure FreeAddrInfo(ai: PAddrInfo);
Note | None documented |
---|
function GetNameInfo(sa: PSockAddr; salen: Longint; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Longint): Longint;
Note | None documented |
---|
RTL sockets functions
function fpsocket(domain:cint; xtype:cint; protocol: cint):cint;
Note | None documented |
---|
function fpsend(s:cint; msg:pointer; len:size_t; flags:cint):ssize_t;
Note | None documented |
---|
function fpsendto(s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;
Note | None documented |
---|
function fprecv(s:cint; buf: pointer; len: size_t; flags: cint):ssize_t;
Note | None documented |
---|
function fprecvfrom(s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;
Note | None documented |
---|
function fpconnect(s:cint; name : psockaddr; namelen : tsocklen):cint;
Note | None documented |
---|
function fpshutdown(s:cint; how:cint):cint;
Note | None documented |
---|
function fpbind(s:cint; addrx : psockaddr; addrlen : tsocklen):cint;
Note | None documented |
---|
function fplisten(s:cint; backlog : cint):cint;
Note | None documented |
---|
function fpaccept(s:cint; addrx : psockaddr; addrlen : psocklen):cint;
Note | None documented |
---|
function fpgetsockname(s:cint; name : psockaddr; namelen : psocklen):cint;
Note | None documented |
---|
function fpgetpeername(s:cint; name : psockaddr; namelen : psocklen):cint;
Note | None documented |
---|
function fpgetsockopt(s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;
Note | None documented |
---|
function fpsetsockopt(s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;
Note | None documented |
---|
function fpsocketpair(d:cint; xtype:cint; protocol:cint; sv:pcint):cint;
Note | None documented |
---|
RTL select functions
function fpselect(n:cint; readfds, writefds, exceptfds: PFDSet; TimeOut: PTimeVal):cint;
Note | None documented |
---|
RTL file/text sockets functions
function fpRead(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;
Note | None documented |
---|
function fpWrite(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;
Note | None documented |
---|
procedure OpenSock(var F:Text);
Note | None documented |
---|
procedure IOSock(var F:Text);
Note | None documented |
---|
procedure FlushSock(var F:Text);
Note | None documented |
---|
procedure CloseSock(var F:text);
Note | None documented |
---|
procedure Sock2Text(Sock:Longint; Var SockIn,SockOut:Text);
Note | None documented |
---|
function DoAccept(Sock:longint; var addr:TInetSockAddr):longint;
Note | None documented |
---|
function Accept(Sock:longint; var addr:TInetSockAddr; var SockIn,SockOut:File):Boolean;
Note | None documented |
---|
function Accept(Sock:longint; var addr:TInetSockAddr; var SockIn,SockOut:text):Boolean;
Note | None documented |
---|
function DoConnect(Sock:longint; const addr:TInetSockAddr):Boolean;
Note | None documented |
---|
function Connect(Sock:longint; const addr:TInetSockAddr; var SockIn,SockOut:text):Boolean;
Note | None documented |
---|
function Connect(Sock:longint; const addr:TInetSockAddr; var SockIn,SockOut:file):Boolean;
Note | None documented |
---|
procedure Sock2File(Sock:Longint; Var SockIn,SockOut:File);
Note | None documented |
---|
Sockets helper functions
procedure SocketsProcessConfig(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessFilter(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessProtocol(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessSocket(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessAuth(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessMonitor(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessTransport(Data:Pointer);
Note | None documented |
---|
procedure SocketsProcessAdapter(Data:Pointer);
Note | None documented |
---|
procedure SocketsNetworkDeviceAdd(Event:PSocketsDeviceEvent);
Note | None documented |
---|
function SocketsNetworkDeviceRemove(Network:PNetworkDevice):LongWord;
Note | None documented |
---|
function SocketsNetworkDeviceUp(Network:PNetworkDevice):LongWord;
Note | None documented |
---|
function SocketsNetworkDeviceDown(Network:PNetworkDevice):LongWord;
Note | None documented |
---|
function SocketsNetworkDeviceEnum(Network:PNetworkDevice; Data:Pointer):LongWord;
Note | None documented |
---|
function SocketsNetworkDeviceNotify(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
Note | None documented |
---|
RTL sockets helper functions
function htonl(host:cardinal):cardinal; inline;
Note | None documented |
---|
function ntohl(net:cardinal):cardinal; inline;
Note | None documented |
---|
function htons(host:word):word; inline;
Note | None documented |
---|
function ntohs(net:word):word; inline;
Note | None documented |
---|
function NetAddrToStr(Entry:in_addr):AnsiString;
Note | None documented |
---|
function HostAddrToStr(Entry:in_addr):AnsiString;
Note | None documented |
---|
function StrToHostAddr(IP:AnsiString):in_addr;
Note | None documented |
---|
function StrToNetAddr(IP:AnsiString):in_addr;
Note | None documented |
---|
function HostToNet(Host:in_addr):in_addr;
Note | None documented |
---|
function NetToHost(Net:in_addr):in_addr;
Note | None documented |
---|
function HostToNet(Host:Longint):Longint;
Note | None documented |
---|
function NetToHost(Net:Longint):Longint;
Note | None documented |
---|
function ShortHostToNet(Host:Word):Word;
Note | None documented |
---|
function ShortNetToHost(Net:Word):Word;
Note | None documented |
---|
function LocalIntToHex(Value:Integer; Digits:LongInt):AnsiString;
Note | None documented |
---|
function HostAddrToStr6(Entry:Tin6_addr):AnsiString;
Note | None documented |
---|
function StrToHostAddr6(IP:String):Tin6_addr;
Note | None documented |
---|
function NetAddrToStr6(Entry:Tin6_addr):AnsiString;
Note | None documented |
---|
function StrToNetAddr6(IP:AnsiString):TIn6_Addr;
Note | None documented |
---|
Return to Unit Reference