Difference between revisions of "Unit Sockets"
Line 1,096: | Line 1,096: | ||
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
|- | |- | ||
− | | <code>TFDSet = | + | | <code>TFDSet = GlobalSock.TFDSet;</code> |
| style="width: 40%;"| | | style="width: 40%;"| | ||
|- | |- | ||
− | | <code>PFDSet = | + | | <code>PFDSet = GlobalSock.PFDSet;</code> |
| style="width: 40%;"|Legacy | | style="width: 40%;"|Legacy | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 1,116: | Line 1,107: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
− | <code>PTimeVal = | + | <code>PTimeVal = GlobalSock.PTimeVal;</code> |
− | <code>TTimeVal = | + | <code>TTimeVal = GlobalSock.TTimeVal;</code> |
<code>timeval = record</code> | <code>timeval = record</code> |
Revision as of 04:26, 12 September 2024
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 = GlobalSock.FD_SETSIZE;
|
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 = GlobalSock.TFDSet;
|
|
PFDSet = GlobalSock.PFDSet;
|
Legacy |
Time value
PTimeVal = GlobalSock.PTimeVal;
TTimeVal = GlobalSock.TTimeVal;
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 clong;
|
|
TSockArray = array[1..2] of clong;
|
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