Difference between revisions of "Unit Sockets"

From Ultibo.org
Jump to: navigation, search
 
(10 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
'''Ultibo Network Sockets interface unit'''
+
'''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.
 
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.
Line 22: Line 22:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
| <code>SOCKETS_DEVICE_TIMER_INTERVAL = 500;</code>
+
| <code>SOCKETS_DEVICE_TIMER_INTERVAL = 100;</code>
| &nbsp;
+
| Timer interval for new device additions
 
|-
 
|-
 
|colspan="2"|&nbsp;  
 
|colspan="2"|&nbsp;  
Line 128: Line 128:
 
|colspan="2"|&nbsp;  
 
|colspan="2"|&nbsp;  
 
|-
 
|-
| <code>FD_MAXFDSET = 1024;</code>
+
| <code>FD_MAXFDSET = GlobalSock.FD_SETSIZE;</code>
| &nbsp;
+
|-
+
| <code>BITSINWORD = 8 * SizeOf(culong);</code>
+
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 733: Line 730:
 
|-
 
|-
 
| <code>SO_OOBINLINE = GlobalSock.SO_OOBINLINE;</code>
 
| <code>SO_OOBINLINE = GlobalSock.SO_OOBINLINE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_REUSEPORT = GlobalSock.SO_REUSEPORT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_TIMESTAMP = GlobalSock.SO_TIMESTAMP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_ACCEPTFILTER = GlobalSock.SO_ACCEPTFILTER;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 738: Line 744:
 
|-
 
|-
 
| <code>SO_DONTLINGER = GlobalSock.SO_DONTLINGER;</code>
 
| <code>SO_DONTLINGER = GlobalSock.SO_DONTLINGER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SO_EXCLUSIVEADDRUSE = GlobalSock.SO_EXCLUSIVEADDRUSE;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 1,099: Line 1,108:
 
{| 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 = array[0..(FD_MAXFDSET div BITSINWORD) - 1] of culong;</code>
+
| <code>TFDSet = GlobalSock.TFDSet;</code>
 
| style="width: 40%;"|
 
| style="width: 40%;"|
 
|-
 
|-
| <code>PFDSet = ^TFDSet;</code>
+
| <code>PFDSet = GlobalSock.PFDSet;</code>
 
| style="width: 40%;"|Legacy
 
| style="width: 40%;"|Legacy
 
|-
 
|-
 
|}
 
|}
  
'''TimeVal type'''
+
'''Time value'''
  
 
{| 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>time_t = PtrInt;</code>
+
| <code>PTimeVal = GlobalSock.PTimeVal;</code>
 
| style="width: 40%;"|
 
| style="width: 40%;"|
 
|-
 
|-
|}
+
| <code>TTimeVal = GlobalSock.TTimeVal;</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%;"|&nbsp;
+
|-
+
| <code>tv_usec:clong;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
 
  
 
'''Linger'''
 
'''Linger'''
Line 1,194: Line 1,186:
 
{| 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>TSockPairArray = array[0..1] of Longint;</code>
+
| <code>TSockPairArray = array[0..1] of clong;</code>
 
| style="width: 40%;"|
 
| style="width: 40%;"|
 
|-
 
|-
| <code>TSockArray  = array[1..2] of Longint;</code>
+
| <code>TSockArray  = array[1..2] of clong;</code>
 
| style="width: 40%;"|Legacy
 
| style="width: 40%;"|Legacy
 
|-
 
|-
Line 1,308: Line 1,300:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Socket(Domain,SocketType,Protocol:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Socket(Domain,SocketType,Protocol:Longint):clong;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,320: Line 1,312:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Send(Sock:Longint; const Buf; BufLen,Flags:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Send(Sock:clong; const Buf; BufLen,Flags:Longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,332: Line 1,324:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function SendTo(Sock:Longint; const Buf; BufLen,Flags:Longint; var Addr; AddrLen : Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function SendTo(Sock:clong; const Buf; BufLen,Flags:Longint; var Addr; AddrLen : Longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,344: Line 1,336:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Recv(Sock:Longint; var Buf; BufLen,Flags:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Recv(Sock:clong; var Buf; BufLen,Flags:Longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,356: Line 1,348:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function RecvFrom(Sock : Longint; var Buf; Buflen,Flags : Longint; var Addr; var AddrLen : longint) : longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function RecvFrom(Sock : clong; var Buf; Buflen,Flags : Longint; var Addr; var AddrLen : longint) : longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,368: Line 1,360:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Connect(Sock:Longint; const Addr; Addrlen:Longint):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Connect(Sock:clong; const Addr; Addrlen:Longint):Boolean; overload;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,380: Line 1,372:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Shutdown(Sock:Longint; How:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Shutdown(Sock:clong; How:Longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,392: Line 1,384:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Bind(Sock:Longint; const Addr; AddrLen:Longint):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Bind(Sock:clong; const Addr; AddrLen:Longint):Boolean;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,404: Line 1,396:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Listen(Sock,MaxConnect:Longint):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Listen(Sock:clong; MaxConnect:Longint):Boolean;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,416: Line 1,408:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Accept(Sock:Longint; var Addr; var Addrlen:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Accept(Sock:clong; var Addr; var Addrlen:Longint):clong; overload;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,428: Line 1,420:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function GetSocketName(Sock:Longint; var Addr; var Addrlen:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function GetSocketName(Sock:clong; var Addr; var Addrlen:Longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,440: Line 1,432:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function GetPeerName(Sock:Longint; var Addr; var Addrlen:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function GetPeerName(Sock:clong; var Addr; var Addrlen:Longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,452: Line 1,444:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function GetSocketOptions(Sock,Level,OptName:Longint; var OptVal; var optlen:longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function GetSocketOptions(Sock:clong; Level,OptName:Longint; var OptVal; var optlen:longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,464: Line 1,456:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function SetSocketOptions(Sock,Level,OptName:Longint; const OptVal; optlen:longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function SetSocketOptions(Sock:clong; Level,OptName:Longint; const OptVal; optlen:longint):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,488: Line 1,480:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function CloseSocket(Sock:Longint):Longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function CloseSocket(Sock:clong):Longint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,506: Line 1,498:
 
|-
 
|-
 
! Note
 
! Note
| None documented
+
| Address will be returned in network order
 
|-
 
|-
 
|}
 
|}
Line 1,519: Line 1,511:
 
! Note
 
! 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.
 +
|-
 +
! Note
 +
| Address will be in network order
 
|-
 
|-
 
|}
 
|}
Line 1,542: Line 1,537:
 
|-
 
|-
 
! Note
 
! Note
| None documented
+
| Address will be returned in network order
 
|-
 
|-
 
|}
 
|}
Line 1,554: Line 1,549:
 
|-
 
|-
 
! Note
 
! Note
| None documented
+
| Source will be in network order where applicable
 
|-
 
|-
 
|}
 
|}
Line 1,566: Line 1,561:
 
|-
 
|-
 
! Note
 
! Note
| None documented
+
| Address will be in network order where applicable
 
|-
 
|-
 
|}
 
|}
Line 1,602: Line 1,597:
 
|-
 
|-
 
! Note
 
! Note
| None documented
+
| Address will be in network order where applicable
 
|-
 
|-
 
|}
 
|}
Line 1,626: Line 1,621:
 
|-
 
|-
 
! Note
 
! Note
| None documented
+
| Port will be in network order
 
|-
 
|-
 
|}
 
|}
Line 1,669: Line 1,664:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetAddrInfo(HostName, ServName: PChar; Hints: PAddrInfo; var Addr: PAddrInfo): Longint;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetAddrInfo(HostName, ServName: PChar; Hints: PAddrInfo; var Addr: PAddrInfo): Longint;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' RFC 3493 protocol-independent translation from a host name to an address</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 1,681: Line 1,676:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">procedure FreeAddrInfo(ai: PAddrInfo);</pre>
 
<pre style="border: 0; padding-bottom:0px;">procedure FreeAddrInfo(ai: PAddrInfo);</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Free address information that GetAddrInfo dynamically allocates in TAddrInfo structures</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 1,693: Line 1,688:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetNameInfo(sa: PSockAddr; salen: Longint; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Longint): Longint;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetNameInfo(sa: PSockAddr; salen: Longint; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Longint): Longint;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' RFC 3493 protocol-independent name resolution from an address to a host name and a port number to a service name</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 Gai_StrError(ecode: Longint): PChar;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return an error message for an error code returned by GetAddrInfo or GetNameInfo</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 1,707: Line 1,714:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpsocket(domain:cint; xtype:cint; protocol: cint):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpsocket(domain:cint; xtype:cint; protocol: cint):clong;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,719: Line 1,726:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpsend(s:cint; msg:pointer; len:size_t; flags:cint):ssize_t;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpsend(s:clong; msg:pointer; len:size_t; flags:cint):ssize_t;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,731: Line 1,738:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpsendto(s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpsendto(s:clong; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,743: Line 1,750:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fprecv(s:cint; buf: pointer; len: size_t; flags: cint):ssize_t;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fprecv(s:clong; buf: pointer; len: size_t; flags: cint):ssize_t;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,755: Line 1,762:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fprecvfrom(s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fprecvfrom(s:clong; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,767: Line 1,774:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpconnect(s:cint; name  : psockaddr; namelen : tsocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpconnect(s:clong; name  : psockaddr; namelen : tsocklen):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,779: Line 1,786:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpshutdown(s:cint; how:cint):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpshutdown(s:clong; how:cint):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,791: Line 1,798:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpbind(s:cint; addrx : psockaddr; addrlen : tsocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpbind(s:clong; addrx : psockaddr; addrlen : tsocklen):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,803: Line 1,810:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fplisten(s:cint; backlog : cint):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fplisten(s:clong; backlog : cint):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,815: Line 1,822:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpaccept(s:cint; addrx : psockaddr; addrlen : psocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpaccept(s:clong; addrx : psockaddr; addrlen : psocklen):clong;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,827: Line 1,834:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpgetsockname(s:cint; name  : psockaddr; namelen : psocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpgetsockname(s:clong; name  : psockaddr; namelen : psocklen):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,839: Line 1,846:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpgetpeername(s:cint; name  : psockaddr; namelen : psocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpgetpeername(s:clong; name  : psockaddr; namelen : psocklen):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,851: Line 1,858:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpgetsockopt(s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpgetsockopt(s:clong; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,863: Line 1,870:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpsetsockopt(s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpsetsockopt(s:clong; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,875: Line 1,882:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpsocketpair(d:cint; xtype:cint; protocol:cint; sv:pcint):cint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpsocketpair(d:cint; xtype:cint; protocol:cint; sv:pclong):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,891: Line 1,898:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function fpselect(n:cint; readfds, writefds, exceptfds: PFDSet; TimeOut: PTimeVal):cint;</pre>
 
<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
 +
| All sockets contained by the FDSet must be of the same type
 +
|-
 +
|}
 +
</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 fpFD_SET(fdno:clong; var nset: TFDSet):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,901: Line 1,920:
 
</div></div>
 
</div></div>
 
<br />
 
<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;">
<pre style="border: 0; padding-bottom:0px;">function fpRead(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpFD_CLR(fdno:clong; var nset: TFDSet):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,917: Line 1,933:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function fpWrite(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpFD_ZERO(out nset: TFDSet):cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,929: Line 1,945:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure OpenSock(var F:Text);</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpFD_ISSET(fdno:clong; const nset: TFDSet): cint;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,940: Line 1,956:
 
</div></div>
 
</div></div>
 
<br />
 
<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;">
<pre style="border: 0; padding-bottom:0px;">procedure IOSock(var F:Text);</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpRead(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,953: Line 1,972:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure FlushSock(var F:Text);</pre>
+
<pre style="border: 0; padding-bottom:0px;">function fpWrite(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,965: Line 1,984:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure CloseSock(var F:text);</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure OpenSock(var F:Text);</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 1,977: Line 1,996:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure Sock2Text(Sock:Longint; Var SockIn,SockOut:Text);</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure IOSock(var F:Text);</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set up two Pascal Text file descriptors for reading and writing</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 1,989: Line 2,008:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function DoAccept(Sock:longint; var addr:TInetSockAddr):longint;</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure FlushSock(var F:Text);</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,001: Line 2,020:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Accept(Sock:longint; var addr:TInetSockAddr; var SockIn,SockOut:File):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure CloseSock(var F:text);</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,013: Line 2,032:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Accept(Sock:longint; var addr:TInetSockAddr; var SockIn,SockOut:text):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure Sock2Text(Sock:clong; Var SockIn,SockOut:Text); deprecated;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set up two Pascal Text file descriptors for reading and writing</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 Accept(Sock:clong; var addr:TInetSockAddr; var SockIn,SockOut:File):Boolean; deprecated; overload;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,025: Line 2,056:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function DoConnect(Sock:longint; const addr:TInetSockAddr):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Accept(Sock:clong; var addr:TInetSockAddr; var SockIn,SockOut:text):Boolean; deprecated; overload;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,037: Line 2,068:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Connect(Sock:longint; const addr:TInetSockAddr; var SockIn,SockOut:text):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Connect(Sock:clong; const addr:TInetSockAddr; var SockIn,SockOut:text):Boolean; deprecated; overload;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,049: Line 2,080:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function Connect(Sock:longint; const addr:TInetSockAddr; var SockIn,SockOut:file):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function Connect(Sock:clong; const addr:TInetSockAddr; var SockIn,SockOut:file):Boolean; deprecated; overload;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,061: Line 2,092:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">procedure Sock2File(Sock:Longint; Var SockIn,SockOut:File);</pre>
+
<pre style="border: 0; padding-bottom:0px;">procedure Sock2File(Sock:clong; Var SockIn,SockOut:File); deprecated;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
Line 2,404: Line 2,435:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function ShortNetToHost(Net:Word):Word;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function ShortNetToHost(Net:Word):Word;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
! Note
 
| None documented
 
|-
 
|}
 
</div></div>
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function LocalIntToHex(Value:Integer; Digits:LongInt):AnsiString;</pre>
 
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">

Latest revision as of 02:51, 6 March 2025

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



[Expand]
Sockets specific constants SOCKETS_*


[Expand]
Socket error Esock*, EAI_*


[Expand]
Socket shutdown option SHUT_*


[Expand]
Socket type SOCK_*


[Expand]
Socket input and output S_IN*


[Expand]
Address family AF_*


[Expand]
Protocol family PF_*


[Expand]
IP protocol IPPROTO_*


[Expand]
IP port IPPORT_*


[Expand]
IP option IP_*


[Expand]
Socket option SO_*


[Expand]
TCP option TCP_*


[Expand]
UDP option UDP_*


[Expand]
Message flag MSG_*


[Expand]
Address info flag AI_*


[Expand]
Name info flag NI_*


Type definitions



Sockets device event

[Expand]

PSocketsDeviceEvent = ^TSocketsDeviceEvent;

TSocketsDeviceEvent = record

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;

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

[Expand]

psockaddr_un = ^sockaddr_un;

sockaddr_un = packed record

Address information

PAddrInfo = GlobalSock.PAddrInfo;
TAddrInfo = GlobalSock.TAddrInfo;


Public variables


None defined

Function declarations



Initialization functions

[Expand]
procedure SocketsInit;
Description: To be documented


[Expand]
function SocketsStart:LongWord;
Description: To be documented


[Expand]
function SocketsStop:LongWord;
Description: To be documented


[Expand]
procedure SocketsAsyncStart(Data:Pointer);
Description: To be documented


Sockets functions

[Expand]
function SocketError: cint;
Description: To be documented


[Expand]
function Socket(Domain,SocketType,Protocol:Longint):clong;
Description: To be documented


[Expand]
function Send(Sock:clong; const Buf; BufLen,Flags:Longint):Longint;
Description: To be documented


[Expand]
function SendTo(Sock:clong; const Buf; BufLen,Flags:Longint; var Addr; AddrLen : Longint):Longint;
Description: To be documented


[Expand]
function Recv(Sock:clong; var Buf; BufLen,Flags:Longint):Longint;
Description: To be documented


[Expand]
function RecvFrom(Sock : clong; var Buf; Buflen,Flags : Longint; var Addr; var AddrLen : longint) : longint;
Description: To be documented


[Expand]
function Connect(Sock:clong; const Addr; Addrlen:Longint):Boolean; overload;
Description: To be documented


[Expand]
function Shutdown(Sock:clong; How:Longint):Longint;
Description: To be documented


[Expand]
function Bind(Sock:clong; const Addr; AddrLen:Longint):Boolean;
Description: To be documented


[Expand]
function Listen(Sock:clong; MaxConnect:Longint):Boolean;
Description: To be documented


[Expand]
function Accept(Sock:clong; var Addr; var Addrlen:Longint):clong; overload;
Description: To be documented


[Expand]
function GetSocketName(Sock:clong; var Addr; var Addrlen:Longint):Longint;
Description: To be documented


[Expand]
function GetPeerName(Sock:clong; var Addr; var Addrlen:Longint):Longint;
Description: To be documented


[Expand]
function GetSocketOptions(Sock:clong; Level,OptName:Longint; var OptVal; var optlen:longint):Longint;
Description: To be documented


[Expand]
function SetSocketOptions(Sock:clong; Level,OptName:Longint; const OptVal; optlen:longint):Longint;
Description: To be documented


[Expand]
function SocketPair(Domain,SocketType,Protocol:Longint; var Pair:TSockArray):Longint;
Description: To be documented


[Expand]
function CloseSocket(Sock:clong):Longint;
Description: To be documented


[Expand]
function Inet_Addr(cp: PChar): Longint;
Description: To be documented


[Expand]
function Inet_Ntoa(inaddr: TInAddr): PChar;
Description: To be documented


[Expand]
function Inet_Aton(cp: PChar; inaddr: PInAddr): Longint;
Description: To be documented


[Expand]
function Inet_Pton(family: Longint; Source: PChar; Dest: Pointer): Longint;
Description: To be documented


[Expand]
function Inet_Ntop(family: Longint; Source: Pointer; Dest: PChar; Size: Longint): PChar;
Description: To be documented


[Expand]
function GetHostByAddr(addr: Pointer; len, family: Longint): PHostEnt;
Description: To be documented


[Expand]
function GetHostByName(name: PChar): PHostEnt;
Description: To be documented


[Expand]
function GetHostName(name: PChar; len: Longint): Longint;
Description: To be documented


[Expand]
function GetNetByAddr(addr: Pointer; len, Struct: Integer): PNetEnt;
Description: To be documented


[Expand]
function GetNetByName(name: PChar): PNetEnt;
Description: To be documented


[Expand]
function GetServByPort(port: Longint; proto: PChar): PServEnt;
Description: To be documented


[Expand]
function GetServByName(name, proto: PChar): PServEnt;
Description: To be documented


[Expand]
function GetProtoByNumber(proto: Longint): PProtoEnt;
Description: To be documented


[Expand]
function GetProtoByName(name: PChar): PProtoEnt;
Description: To be documented


[Expand]
function GetAddrInfo(HostName, ServName: PChar; Hints: PAddrInfo; var Addr: PAddrInfo): Longint;
Description: RFC 3493 protocol-independent translation from a host name to an address


[Expand]
procedure FreeAddrInfo(ai: PAddrInfo);
Description: Free address information that GetAddrInfo dynamically allocates in TAddrInfo structures


[Expand]
function GetNameInfo(sa: PSockAddr; salen: Longint; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Longint): Longint;
Description: RFC 3493 protocol-independent name resolution from an address to a host name and a port number to a service name


[Expand]
function Gai_StrError(ecode: Longint): PChar;
Description: Return an error message for an error code returned by GetAddrInfo or GetNameInfo


RTL sockets functions

[Expand]
function fpsocket(domain:cint; xtype:cint; protocol: cint):clong;
Description: To be documented


[Expand]
function fpsend(s:clong; msg:pointer; len:size_t; flags:cint):ssize_t;
Description: To be documented


[Expand]
function fpsendto(s:clong; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;
Description: To be documented


[Expand]
function fprecv(s:clong; buf: pointer; len: size_t; flags: cint):ssize_t;
Description: To be documented


[Expand]
function fprecvfrom(s:clong; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;
Description: To be documented


[Expand]
function fpconnect(s:clong; name  : psockaddr; namelen : tsocklen):cint;
Description: To be documented


[Expand]
function fpshutdown(s:clong; how:cint):cint;
Description: To be documented


[Expand]
function fpbind(s:clong; addrx : psockaddr; addrlen : tsocklen):cint;
Description: To be documented


[Expand]
function fplisten(s:clong; backlog : cint):cint;
Description: To be documented


[Expand]
function fpaccept(s:clong; addrx : psockaddr; addrlen : psocklen):clong;
Description: To be documented


[Expand]
function fpgetsockname(s:clong; name  : psockaddr; namelen : psocklen):cint;
Description: To be documented


[Expand]
function fpgetpeername(s:clong; name  : psockaddr; namelen : psocklen):cint;
Description: To be documented


[Expand]
function fpgetsockopt(s:clong; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;
Description: To be documented


[Expand]
function fpsetsockopt(s:clong; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;
Description: To be documented


[Expand]
function fpsocketpair(d:cint; xtype:cint; protocol:cint; sv:pclong):cint;
Description: To be documented


RTL select functions

[Expand]
function fpselect(n:cint; readfds, writefds, exceptfds: PFDSet; TimeOut: PTimeVal):cint;
Description: To be documented


[Expand]
function fpFD_SET(fdno:clong; var nset: TFDSet):cint;
Description: To be documented


[Expand]
function fpFD_CLR(fdno:clong; var nset: TFDSet):cint;
Description: To be documented


[Expand]
function fpFD_ZERO(out nset: TFDSet):cint;
Description: To be documented


[Expand]
function fpFD_ISSET(fdno:clong; const nset: TFDSet): cint;
Description: To be documented


RTL file/text sockets functions

[Expand]
function fpRead(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;
Description: To be documented


[Expand]
function fpWrite(Handle:LongInt; var BufPtr; Size:DWORD):DWORD;
Description: To be documented


[Expand]
procedure OpenSock(var F:Text);
Description: To be documented


[Expand]
procedure IOSock(var F:Text);
Description: To be documented


[Expand]
procedure FlushSock(var F:Text);
Description: To be documented


[Expand]
procedure CloseSock(var F:text);
Description: To be documented


[Expand]
procedure Sock2Text(Sock:clong; Var SockIn,SockOut:Text); deprecated;
Description: Set up two Pascal Text file descriptors for reading and writing


[Expand]
function Accept(Sock:clong; var addr:TInetSockAddr; var SockIn,SockOut:File):Boolean; deprecated; overload;
Description: To be documented


[Expand]
function Accept(Sock:clong; var addr:TInetSockAddr; var SockIn,SockOut:text):Boolean; deprecated; overload;
Description: To be documented


[Expand]
function Connect(Sock:clong; const addr:TInetSockAddr; var SockIn,SockOut:text):Boolean; deprecated; overload;
Description: To be documented


[Expand]
function Connect(Sock:clong; const addr:TInetSockAddr; var SockIn,SockOut:file):Boolean; deprecated; overload;
Description: To be documented


[Expand]
procedure Sock2File(Sock:clong; Var SockIn,SockOut:File); deprecated;
Description: To be documented


Sockets helper functions

[Expand]
procedure SocketsProcessConfig(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessFilter(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessProtocol(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessSocket(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessAuth(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessMonitor(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessTransport(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsProcessAdapter(Data:Pointer);
Description: To be documented


[Expand]
procedure SocketsNetworkDeviceAdd(Event:PSocketsDeviceEvent);
Description: To be documented


[Expand]
function SocketsNetworkDeviceRemove(Network:PNetworkDevice):LongWord;
Description: To be documented


[Expand]
function SocketsNetworkDeviceUp(Network:PNetworkDevice):LongWord;
Description: To be documented


[Expand]
function SocketsNetworkDeviceDown(Network:PNetworkDevice):LongWord;
Description: To be documented


[Expand]
function SocketsNetworkDeviceEnum(Network:PNetworkDevice; Data:Pointer):LongWord;
Description: To be documented


[Expand]
function SocketsNetworkDeviceNotify(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
Description: To be documented


RTL sockets helper functions

[Expand]
function htonl(host:cardinal):cardinal; inline;
Description: To be documented


[Expand]
function ntohl(net:cardinal):cardinal; inline;
Description: To be documented


[Expand]
function htons(host:word):word; inline;
Description: To be documented


[Expand]
function ntohs(net:word):word; inline;
Description: To be documented


[Expand]
function NetAddrToStr(Entry:in_addr):AnsiString;
Description: To be documented


[Expand]
function HostAddrToStr(Entry:in_addr):AnsiString;
Description: To be documented


[Expand]
function StrToHostAddr(IP:AnsiString):in_addr;
Description: To be documented


[Expand]
function StrToNetAddr(IP:AnsiString):in_addr;
Description: To be documented


[Expand]
function HostToNet(Host:in_addr):in_addr;
Description: To be documented


[Expand]
function NetToHost(Net:in_addr):in_addr;
Description: To be documented


[Expand]
function HostToNet(Host:Longint):Longint;
Description: To be documented


[Expand]
function NetToHost(Net:Longint):Longint;
Description: To be documented


[Expand]
function ShortHostToNet(Host:Word):Word;
Description: To be documented


[Expand]
function ShortNetToHost(Net:Word):Word;
Description: To be documented


[Expand]
function HostAddrToStr6(Entry:Tin6_addr):AnsiString;
Description: To be documented


[Expand]
function StrToHostAddr6(IP:String):Tin6_addr; 
Description: To be documented


[Expand]
function NetAddrToStr6(Entry:Tin6_addr):AnsiString;
Description: To be documented


[Expand]
function StrToNetAddr6(IP:AnsiString):TIn6_Addr;
Description: To be documented


Return to Unit Reference