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;