Description | Uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables |
Contains Windows sockets version 1.1 wrapper classes.
Version 2.5.2008.02 IOCP and WinSock 2.0 extentions
Name | Description |
---|---|
packed record ip_mreq |
– ip_mreq – |
Class unaMulticastSocket |
interface to join on */
– unaMulticastSocket – |
Class unaSocket |
Base class implementing Windows socket. |
Class unaSocketsConnections |
– unaSocketsConnections – |
Class unaSocks |
This class is used to create server and client sockets and manage the connections. |
Class unaSocksConnection |
This is base class for connection between two sockets. |
Class unaSocksThread |
This thread is used to handle server or client connections. |
Class unaSocksThreads |
– unaSocketsThreads – |
Class unaTcpSocket |
This class encapsulates TCP socket implementation. |
Class unaUdpSocket |
This class encapsulates UDP socket implementation. |
packed record unaURICrack |
URI crack record |
Class unaWSA |
Windows sockets manager class. |
function checkError(value: int; fatal: bool = true ): int; |
function lookupHost(const host: string; out ip: string; list: unaStringList = nil): int; overload; |
function lookupHostH(const host: string): TIPv4H; |
function lookupHostN(const host: string): TIPv4N; |
function getHostInfoH(const ipH: TIPv4H): string; |
function listAddresses(const host: string; list: unaStringList): int; |
function lookupPort(const port: string): int; overload; |
function lookupPort(const port: string; out port_info: protoent): int; overload; |
function startup(version: uint = $0101): int; |
function shutdown(): int; |
function getWSAObject(): unaWSA; |
function select(s: tSocket; r, w, e: pbool; timeout: tTimeout = tTimeout(INFINITE)): int; |
function ipH2str(const ipH: TIPv4H): string; overload; |
function ipH2str(const ipH: TIPv6H): string; overload; |
function ipN2str(const ipN: TIPv4N): string; overload; |
function ipN2str(const addr: TSockAddrIn): string; overload; |
function ipH2ipN(const ipH: TIPv4H): TIPv4N; |
function ipN2ipH(const ipN: TIPv4N): TIPv4H; overload; |
function ipN2ipH(addr: PSockAddrIn): TIPv4H; overload; |
function portHFromAddr(addr: PSockAddrIn): word; |
function str2ipH(const ip: string): TIPv4H; |
function str2ipN(const ip: string): TIPv4N; |
function addr2str(addr: pSockAddrIn): string; |
function str2addr(const ipport: string; var addr: sockaddr_in): bool; |
function isMulticastAddr(const addr: string): bool; |
function isMulticastAddrH(const ipH: TIPv4H): bool; |
function isMulticastAddrN(const ipN: TIPv4N): bool; |
function isBroadcastAddrN(const ipN: TIPv4N): bool; |
function isLocalNetworkAddrH(const ipH: TIPv4H): bool; |
function isThisHostIP_N(const ipN: TIPv4N): bool; |
function sameAddr(const addr1, addr2: sockaddr_in; ipOnly: bool = false): bool; |
function makeAddr(const host, port: string; var addr: sockaddr_in): bool; |
function sameIPN(const ipN1, ipN2: TIPv4N): bool; |
function httpQuery(const ip, port, query: string; callback: tIpQueryCallback = nil; timeout: tTimeout = 5000): int; |
function ipQuery(const ip, port, query: string; proto: int = IPPROTO_TCP; callback: tIpQueryCallback = nil; timeout: tTimeout = 5000): int; |
function crackURI(URI: string; var crack: unaURICrack; flags: DWORD = 0): bool; |
function httpGetData(const URI: string; out data: aString; timeout: tTimeout = 5000): HRESULT; |
pIPv4N = ˆTIPv4N; |
TIPv4N = array[0..3] of byte; |
pIPv4H = ˆTIPv4H; |
TIPv4H = uint32; |
pIPv6H = ˆTIPv6H; |
TIPv6H = array[0..15] of byte; |
tConID = cardinal; |
unaSocketEvent = (...); |
unaSocksOnEventEvent = procedure(sender: tObject; event: unaSocketEvent; id, connId: tConID; data: pointer; size: uint) of object; |
tIpQueryCallback = procedure(queryId: tConID; const query: string; const response, responseData: aString) of object; |
c_defUdpConnTimeout = 60000 * 3; |
c_unaMC_receive = 1; |
c_unaMC_send = 2; |
IP_ADD_MEMBERSHIP = 12; |
IP_DEFAULT_MULTICAST_LOOP = 1; |
IP_DEFAULT_MULTICAST_TTL = 1; |
IP_DROP_MEMBERSHIP = 13; |
IP_MAX_MEMBERSHIPS = 20; |
IP_MULTICAST_IF = 9; |
IP_MULTICAST_LOOP = 11; |
IP_MULTICAST_TTL = 10; |
SD_BOTH = 2; |
SO_MAX_MSG_SIZE = $2003; |
c_maxThreadPoolSize: unsigned = 256; |
function checkError(value: int; fatal: bool = true ): int; |
– internal – |
function lookupHost(const host: string; out ip: string; list: unaStringList = nil): int; overload; |
Lookups host name. If the "list" parameter is not nil, it also lists all addresses assigned to a host. Host name could be in integer ("194.44.186.254") or alpha ("www.microsoft.com") format or "" for local machine. Fills the given ip string with a string representation of the IP address of the host (if resolved). Returns0 if successful or specific WSA error otherwise. |
function lookupHostH(const host: string): TIPv4H; |
Lookups host name.
Parameters
ReturnsIP address (in host byte order) of the host or default parameter value if lookup fails. |
function lookupHostN(const host: string): TIPv4N; |
Lookups host name.
Parameters
ReturnsIP address (in network byte order) of the host or default parameter value if lookup fails. |
function getHostInfoH(const ipH: TIPv4H): string; |
Lookups host info.
Parameters
ReturnsFQDN of the host (if any) |
function listAddresses(const host: string; list: unaStringList): int; |
List all addresses assigned to a host.
Parameters
Returns0 if successful or specific WSA error otherwise. |
function lookupPort(const port: string): int; overload; |
Lookups port number.
Parameters
Returnsport number if successful, or -1 if port is invalid or unknown. |
function lookupPort(const port: string; out port_info: protoent): int; overload; |
Lookups port number. Also fills given port_info parameter. Parameters
Returns0 if successful, -1 if port is "" or specific WSA error otherwise. |
function startup(version: uint = $0101): int; |
Startups the Windows sockets by creating unaWsa class instance. |
function shutdown(): int; |
Shutdowns the Windows sockets by deleting the unaWsa class instance created in startup() routine. |
function getWSAObject(): unaWSA; |
Returns unaWSA class instance created by a call to startup(), or by unaSocks class. |
function select(s: tSocket; r, w, e: pbool; timeout: tTimeout = tTimeout(INFINITE)): int; |
Issues select() operation on a socket.
Parameters
Returns0 if timeout occured, 1 if successfull, or some specific WSA error otherwise. |
function ipH2str(const ipH: TIPv4H): string; overload; |
Converts host byte order (little endian) unsigned 32 bits integer to string representing IP address (xxx.xxx.xxx.xxx). |
function ipH2str(const ipH: TIPv6H): string; overload; |
. |
function ipN2str(const ipN: TIPv4N): string; overload; |
Converts network byte order (big endian) unsigned 32 bits integer to string representing IP address (xxx.xxx.xxx.xxx). |
function ipN2str(const addr: TSockAddrIn): string; overload; |
Converts IP from address to string representing IP address (xxx.xxx.xxx.xxx). |
function ipH2ipN(const ipH: TIPv4H): TIPv4N; |
Converts host byte ordered IP to network byte order (big endian) unsigned 32 bits integer. |
function ipN2ipH(const ipN: TIPv4N): TIPv4H; overload; |
Converts network byte order (big endian) unsigned 32 bits integer to host byte ordered IP. |
function ipN2ipH(addr: PSockAddrIn): TIPv4H; overload; |
Converts network byte order (big endian) address record to host byte ordered IP. |
function portHFromAddr(addr: PSockAddrIn): word; |
Returns port (in host order) from address |
function str2ipH(const ip: string): TIPv4H; |
Converts string representing IP address (xxx.xxx.xxx.xxx) into host byte order (little endian) unsigned 32 bits integer. |
function str2ipN(const ip: string): TIPv4N; |
Converts string representing IP address (xxx.xxx.xxx.xxx) into network byte order (big endian) unsigned 32 bits integer. |
function addr2str(addr: pSockAddrIn): string; |
Converts socket address to string. |
function str2addr(const ipport: string; var addr: sockaddr_in): bool; |
Converts string to socket address. ipport should be in format udp://name-or-ip:port or tcp://name-or-ip:port |
function isMulticastAddr(const addr: string): bool; |
Return True if specified address is whiting multicast range. |
function isMulticastAddrH(const ipH: TIPv4H): bool; |
Return True if specified address is whiting multicast range. Parameters
|
function isMulticastAddrN(const ipN: TIPv4N): bool; |
Return True if specified address is whiting multicast range. Parameters
|
function isBroadcastAddrN(const ipN: TIPv4N): bool; |
Return True if specified address is whiting broadcast range. Parameters
|
function isLocalNetworkAddrH(const ipH: TIPv4H): bool; |
Checks if IP is assigned to LAN range
Parameters
ReturnsTrue if specified address is valid for LAN only and cannot "legitimately appear on the public Internet". |
function isThisHostIP_N(const ipN: TIPv4N): bool; |
Checks if specified IP address is referencing this host.
Parameters
ReturnsTrue if IP is referencing local host is some way (127.0.0.1, etc) |
function sameAddr(const addr1, addr2: sockaddr_in; ipOnly: bool = false): bool; |
Returns True if two addresses are same (has same IP and port). |
function makeAddr(const host, port: string; var addr: sockaddr_in): bool; |
Returns True if function succeeded. |
function sameIPN(const ipN1, ipN2: TIPv4N): bool; |
Returns true if both IPs are same |
function httpQuery(const ip, port, query: string; callback: tIpQueryCallback = nil; timeout: tTimeout = 5000): int; |
returns -1 in case of some problem or valid queryId (which is an integer greater than 0) if all seems to be OK |
function ipQuery(const ip, port, query: string; proto: int = IPPROTO_TCP; callback: tIpQueryCallback = nil; timeout: tTimeout = 5000): int; |
function crackURI(URI: string; var crack: unaURICrack; flags: DWORD = 0): bool; |
Uses InternetCrackURL(), takes care of unicode/ansi versions. |
function httpGetData(const URI: string; out data: aString; timeout: tTimeout = 5000): HRESULT; |
Downloads small file from HTTP server.
Parameters
ReturnsS_OK if no error |
pIPv4N = ˆTIPv4N; |
TIPv4N = array[0..3] of byte; |
pIPv4H = ˆTIPv4H; |
network byte order |
TIPv4H = uint32; |
pIPv6H = ˆTIPv6H; |
host byte order |
TIPv6H = array[0..15] of byte; |
tConID = cardinal; |
unaSocksOnEventEvent = procedure(sender: tObject; event: unaSocketEvent; id, connId: tConID; data: pointer; size: uint) of object; |
Socks event handler type |
tIpQueryCallback = procedure(queryId: tConID; const query: string; const response, responseData: aString) of object; |
– IP/HTTP – |
c_defUdpConnTimeout = 60000 * 3; |
default timeout for sockets "connected" to UDP server is 3 minutes |
c_unaMC_receive = 1; |
I/O flags |
c_unaMC_send = 2; |
IP_ADD_MEMBERSHIP = 12; |
set/get - IP multicast loopback */ |
IP_DEFAULT_MULTICAST_LOOP = 1; |
IP_DEFAULT_MULTICAST_TTL = 1; |
set - drop IP group membership */ |
IP_DROP_MEMBERSHIP = 13; |
set - add IP group membership */ |
IP_MAX_MEMBERSHIPS = 20; |
IP_MULTICAST_IF = 9; |
IP_MULTICAST_LOOP = 11; |
set/get - IP multicast TTL */ |
IP_MULTICAST_TTL = 10; |
set/get - IP multicast interface */ |
SD_BOTH = 2; |
missing in Delphi 5 or earlier |
SO_MAX_MSG_SIZE = $2003; |
maximum message size |
c_maxThreadPoolSize: unsigned = 256; |
maximum number of threads in pool |
(c) 2012 Lake of Soft