Unit Winsock2

From Ultibo.org
Jump to: navigation, search

Return to Unit Reference


Description


Ultibo Winsock2 Interface unit

Notes:

  • All BSD/Winsock 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.

Constants



[Expand]
Winsock2 specific constants WINSOCK_*


[Expand]
IP protocol IPPROTO_*


[Expand]
IP port IPPORT_*


[Expand]
IP option IP_*


[Expand]
Socket type SOCK_*


[Expand]
Socket option SO_*


[Expand]
TCP option TCP_*


[Expand]
UDP option UDP_*


[Expand]
Address family AF_*


[Expand]
Protocol family PF_*


[Expand]
Message flag MSG_*


[Expand]
FD option FD_*


[Expand]
Socket error WSAE*


[Expand]
Condition function value CF_*


[Expand]
Shutdown option SD_*


[Expand]
Socket group SG_*


[Expand]
Provider flag PFL_*


[Expand]
Service flag XP1_*


[Expand]
Join leaf option JL_*


[Expand]
Socket flag WSA_FLAG_*


[Expand]
Socket IOC option IOC_*


[Expand]
SIO option SIO_*


[Expand]
Name space NS_*


[Expand]
Resolution flag RES_*


[Expand]
Service type value SERVICE_TYPE_*


[Expand]
LUP option LUP_*


[Expand]
Address info flag AI_*


[Expand]
Name info flag NI_*


Type definitions


See globalsock.pas

Class definitions



Base socket classes

TWinsock2Socket = class(TListObject)
TWinsock2SocketThread = class(TThreadEx)
TWinsock2SocketThreads = class(TObject)
TWinsock2SocketBuffer = class(TObject)
TWinsock2SocketBuffers = class(TObject)

Raw socket (SOCK_RAW) classes

TWinsock2RAWSocket = class(TWinsock2Socket)

Stream socket (SOCK_STREAM) classes

TWinsock2TCPSocket = class(TWinsock2Socket)

Datagram socket (SOCK_DGRAM) classes

TWinsock2UDPSocket = class(TWinsock2Socket)

Raw client classes

TWinsock2RAWClient = class(TWinsock2RAWSocket)

Stream client classes

TWinsock2TCPClient = class(TWinsock2TCPSocket)

Datagram client classes

TWinsock2UDPClient = class(TWinsock2UDPSocket)

Stream server classes

TWinsock2TCPServer = class(TWinsock2TCPSocket)
TWinsock2TCPServerThread = class(TWinsock2SocketThread)
TWinsock2TCPListenerThread = class(TWinsock2SocketThread)
TWinsock2TCPServerThreads = class(TWinsock2SocketThreads)
TWinsock2TCPListener = class(TWinsock2TCPSocket)

Datagram server classes

TWinsock2UDPServer = class(TWinsock2UDPSocket)
TWinsock2UDPServerThread = class(TWinsock2SocketThread)
TWinsock2UDPListenerThread = class(TWinsock2SocketThread)
TWinsock2UDPServerThreads = class(TWinsock2SocketThreads)
TWinsock2UDPServerBuffer = class(TWinsock2SocketBuffer)
TWinsock2UDPServerBuffers = class(TWinsock2SocketBuffers)
TWinsock2UDPListener = class(TWinsock2UDPSocket)


Public variables


None defined

Function declarations



Initialization functions

[Expand]
procedure WS2Init;
Description: To be documented


[Expand]
function WS2Start:Boolean;
Description: To be documented


[Expand]
function WS2Stop:Boolean;
Description: To be documented


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


Winsock2 functions

[Expand]
function accept( const s: TSocket; addr: PSockAddr; addrlen: PLongint ): TSocket;
Description: To be documented


[Expand]
function accept( const s: TSocket; addr: PSockAddr; var addrlen: Longint ): TSocket;
Description: To be documented


[Expand]
function bind( const s: TSocket; addr: PSockAddr; namelen: Longint ): Longint;
Description: To be documented


[Expand]
function bind( const s: TSocket; var addr: TSockAddr; namelen: Longint ): Longint;
Description: To be documented


[Expand]
function closesocket( const s: TSocket ): Longint;
Description: To be documented


[Expand]
function connect( const s: TSocket; name: PSockAddr; namelen: Longint): Longint;
Description: To be documented


[Expand]
function connect( const s: TSocket; var name: TSockAddr; namelen: Longint): Longint;
Description: To be documented


[Expand]
function ioctlsocket( const s: TSocket; cmd: Longint; var arg: u_long ): Longint;
Description: To be documented


[Expand]
function ioctlsocket( const s: TSocket; cmd: Longint; argp: pu_long ): Longint;
Description: To be documented


[Expand]
function getpeername( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint;
Description: To be documented


[Expand]
function getsockname( const s: TSocket; var name: TSockAddr; var namelen: Longint ): Longint;
Description: To be documented


[Expand]
function getsockopt( const s: TSocket; const level, optname: Longint; optval: PChar; var optlen: Longint ): Longint;
Description: To be documented


[Expand]
function getsockopt( const s: TSocket; const level, optname: Longint; optval: Pointer; var optlen: Longint ): Longint;
Description: To be documented


[Expand]
function getsockopt( const s: TSocket; const level, optname: Longint; var optval; var optlen: Longint ): Longint;
Description: To be documented


[Expand]
function htonl(hostlong: u_long): u_long;
Description: To be documented


[Expand]
function htons(hostshort: u_short): u_short;
Description: To be documented


[Expand]
function inet_addr(cp: PChar): u_long;
Description: To be documented


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


[Expand]
function listen(s: TSocket; backlog: Longint): Longint;
Description: To be documented


[Expand]
function ntohl(netlong: u_long): u_long;
Description: To be documented


[Expand]
function ntohs(netshort: u_short): u_short;
Description: To be documented


[Expand]
function recv(s: TSocket; var Buf; len, flags: Longint): Longint;
Description: To be documented


[Expand]
function recv(s: TSocket; Buf: PChar; len, flags: Longint): Longint;
Description: To be documented


[Expand]
function recv(s: TSocket; Buf: Pointer; len, flags: Longint): Longint;
Description: To be documented


[Expand]
function recvfrom(s: TSocket; Buf: PChar; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint;
Description: To be documented


[Expand]
function recvfrom(s: TSocket; Buf: Pointer; len, flags: Longint; from: PSockAddr; fromlen: PLongint): Longint;
Description: To be documented


[Expand]
function recvfrom(s: TSocket; var Buf; len, flags: Longint; var from: TSockAddr; var fromlen: Longint): Longint;
Description: To be documented


[Expand]
function select(nfds: Longint; readfds, writefds, exceptfds: PFDSet; timeout: PTimeVal): Longint;
Description: To be documented


[Expand]
function send(s: TSocket; var Buf; len, flags: Longint): Longint;
Description: To be documented


[Expand]
function send(s: TSocket; Buf: PChar; len, flags: Longint): Longint;
Description: To be documented


[Expand]
function send(s: TSocket; Buf: Pointer; len, flags: Longint): Longint;
Description: To be documented


[Expand]
function sendto(s: TSocket; var Buf; len, flags: Longint; var addrto: TSockAddr; tolen: Longint): Longint;
Description: To be documented


[Expand]
function sendto(s: TSocket; Buf: PChar; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint;
Description: To be documented


[Expand]
function sendto(s: TSocket; Buf: Pointer; len, flags: Longint; addrto: PSockAddr; tolen: Longint): Longint;
Description: To be documented


[Expand]
function setsockopt(s: TSocket; level, optname: Longint; const optval; optlen: Longint): Longint;
Description: To be documented


[Expand]
function setsockopt(s: TSocket; level, optname: Longint; optval: PChar; optlen: Longint): Longint;
Description: To be documented


[Expand]
function setsockopt(s: TSocket; level, optname: Longint; optval: Pointer; optlen: Longint): Longint;
Description: To be documented


[Expand]
function shutdown(s: TSocket; how: Longint): Longint;
Description: To be documented


[Expand]
function socket(af, struct, protocol: Longint): TSocket;
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 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(pNodeName, pServiceName: PChar; pHints: PAddrInfo; var ppResult: 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: Integer; host: PChar; hostlen: DWORD; serv: PChar; servlen: DWORD; flags: Integer): Integer;
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


[Expand]
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Longint;
Description: To be documented


[Expand]
function WSACleanup: Longint;
Description: To be documented


[Expand]
procedure WSASetLastError(iError: Longint); inline;
Description: To be documented


[Expand]
function WSAGetLastError: Longint; inline;
Description: To be documented


[Expand]
function __WSAFDIsSet(s: TSOcket; var FDSet: TFDSet): Bool;
Description: To be documented


[Expand]
function inet_pton(Family: Longint; pszAddrString: PChar; pAddrBuf: Pointer): Longint;
Description: To be documented


[Expand]
function InetPtonA(Family: Longint; pszAddrString: PChar; pAddrBuf: Pointer): Longint;
Description: To be documented


[Expand]
function InetPtonW(Family: Longint; pszAddrString: PWideChar; pAddrBuf: Pointer): Longint;
Description: To be documented


[Expand]
function inet_ntop(Family: Longint; pAddr: Pointer; pStringBuf: PChar; StringBufSize: Longint): PChar;
Description: To be documented


[Expand]
function InetNtopA(Family: Longint; pAddr: Pointer; pStringBuf: PChar; StringBufSize: Longint): PChar;
Description: To be documented


[Expand]
function InetNtopW(Family: Longint; pAddr: Pointer; pStringBuf: PWideChar; StringBufSize: Longint): PWideChar;
Description: To be documented


[Expand]
function WSAhtonl( s : TSocket; hostlong : u_long; var lpnetlong : DWORD ): Longint;
Description: To be documented


[Expand]
function WSAhtons( s : TSocket; hostshort : u_short; var lpnetshort : WORD ): Longint;
Description: To be documented


[Expand]
function WSANtohl( s : TSocket; netlong : u_long; var lphostlong : DWORD ): Longint;
Description: To be documented


[Expand]
function WSANtohs( s : TSocket; netshort : u_short; var lphostshort : WORD ): Longint;
Description: To be documented


[Expand]
function WSAMakeSyncReply(Buflen, Error: Word): Longint;
Description: To be documented


[Expand]
function WSAMakeSelectReply(Event, Error: Word): Longint;
Description: To be documented


[Expand]
function WSAGetAsyncBuflen(Param: Longint): Word;
Description: To be documented


[Expand]
function WSAGetAsyncError(Param: Longint): Word;
Description: To be documented


[Expand]
function WSAGetSelectEvent(Param: Longint): Word;
Description: To be documented


[Expand]
function WSAGetSelectError(Param: Longint): Word;
Description: To be documented


[Expand]
procedure FD_CLR(Socket: TSocket; var FDSet: TFDSet);
Description: To be documented


[Expand]
function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean;
Description: To be documented


[Expand]
procedure FD_SET(Socket: TSocket; var FDSet: TFDSet);
Description: To be documented


[Expand]
procedure FD_ZERO(var FDSet: TFDSet);
Description: To be documented


Winsock2 undocumented functions

[Expand]
function WsControl(Proto:DWORD; Action:DWORD; pRequestInfo:Pointer; var pcbRequestInfoLen:DWORD; pResponseInfo:Pointer; var pcbResponseInfoLen:DWORD):Integer;
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


Winsock2 enhanced functions

[Expand]
function WsControlEx(Proto:DWORD; Action:DWORD; pRequestInfo:Pointer; var pcbRequestInfoLen:DWORD; pResponseInfo:Pointer; var pcbResponseInfoLen:DWORD):Integer;
Description: To be documented


RTL text IO functions

[Expand]
function SysTextIOReadChar(var ACh:Char; AUserData:Pointer):Boolean;
Description: Handler for platform TextIOReadChar function


[Expand]
function SysTextIOWriteChar(ACh:Char; AUserData:Pointer):Boolean;
Description: Handler for platform TextIOWriteChar function


[Expand]
function SysTextIOWriteBuffer(ABuffer:PChar; ACount:LongInt; AUserData:Pointer):LongInt;
Description: Handler for platform TextIOWriteBuffer function


Winsock2 helper functions

[Expand]
function Winsock2RedirectInput(s:TSocket):Boolean;
Description: Redirect standard input to the socket specified by s


[Expand]
function Winsock2RedirectOutput(s:TSocket):Boolean;
Description: Redirect standard output to the socket specified by s


[Expand]
function Winsock2ErrorToString(AError:LongInt):String;
Description: To be documented


Return to Unit Reference