The following constants identify the different socket types, as needed in the Socket call.
SOCK_STREAM = 1; { stream (connection) socket }
SOCK_DGRAM = 2; { datagram (conn.less) socket }
SOCK_RAW = 3; { raw socket }
SOCK_RDM = 4; { reliably-delivered message }
SOCK_SEQPACKET = 5; { sequential packet socket }
SOCK_PACKET =10;
The following constants determine the socket domain, they are used in the
Socket call.
AF_UNSPEC = 0;
AF_UNIX = 1; { Unix domain sockets }
AF_INET = 2; { Internet IP Protocol }
AF_AX25 = 3; { Amateur Radio AX.25 }
AF_IPX = 4; { Novell IPX }
AF_APPLETALK = 5; { Appletalk DDP }
AF_NETROM = 6; { Amateur radio NetROM }
AF_BRIDGE = 7; { Multiprotocol bridge }
AF_AAL5 = 8; { Reserved for Werner's ATM }
AF_X25 = 9; { Reserved for X.25 project }
AF_INET6 = 10; { IP version 6 }
AF_MAX = 12;
The following constants determine the protocol family, they are used in the
Socket call.
PF_UNSPEC = AF_UNSPEC; PF_UNIX = AF_UNIX; PF_INET = AF_INET; PF_AX25 = AF_AX25; PF_IPX = AF_IPX; PF_APPLETALK = AF_APPLETALK; PF_NETROM = AF_NETROM; PF_BRIDGE = AF_BRIDGE; PF_AAL5 = AF_AAL5; PF_X25 = AF_X25; PF_INET6 = AF_INET6; PF_MAX = AF_MAX;The following types are used to store different kinds of eddresses for the Bind, Recv and Send calls.
TSockAddr = packed Record family:word; data :array [0..13] of char; end; TUnixSockAddr = packed Record family:word; path:array[0..108] of char; end; TInetSockAddr = packed Record family:Word; port :Word; addr :Cardinal; pad :array [1..8] of byte; end;The following type is returned by the SocketPair call.
TSockArray = Array[1..2] of Longint;