📄 winsock2.pas
字号:
lpfnCondition: PCONDITIONPROC; dwCallbackData: DWORD): TSOCKET; stdcall;
function WSACloseEvent( hEvent: WSAEVENT ):BOOL; stdcall;
function WSAConnect(s: TSOCKET; name: psockaddr;namelen: u_int;
lpCallerData: PWSABUF; lpCalleeData: PWSABUF; lpSQOS: PQOS;
lpGQOS: PQOS) : u_int; stdcall;
function WSACreateEvent:WSAEVENT; stdcall;
{$IFDEF UNICODE}
function WSADuplicateSocket(s: TSocket; dwProcessId: DWORD;
lpProtocolInfo: PWSAPROTOCOL_INFOW): u_int; stdcall;
{$ELSE}
function WSADuplicateSocket(s: TSocket; dwProcessId: DWORD;
lpProtocolInfo: PWSAPROTOCOL_INFOA): u_int; stdcall;
{$ENDIF} {UNICODE}
function WSAEnumNetworkEvents( s: TSocket; hEventObject: WSAEVENT;
lpNetworkEvents: PWSANETWORKEVENTS): u_int; stdcall;
{$IFDEF UNICODE}
function WSAEnumProtocols( lpiProtocols: PInt;
lpProtocolBuffer: PWSAPROTOCOL_INFOW; lpdwBufferLength: PDWORD
): u_int; stdcall;
{$ELSE}
function WSAEnumProtocols( lpiProtocols: PInt;
lpProtocolBuffer: PWSAPROTOCOL_INFOA; lpdwBufferLength: PDWORD
): u_int; stdcall;
{$ENDIF} {UNICODE}
function WSAEventSelect(s: TSOCKET; hEventObject: WSAEVENT;
lNetworkEvents: u_long): u_int; stdcall;
function WSAGetOverlappedResult( s: TSocket; lpOverlapped: LPWSAOVERLAPPED;
lpcbTransfer: PDWORD; fWait: BOOL; lpdwFlags: PDWORD): BOOL; stdcall;
function WSAGetQOSByName( s: TSocket; lpQOSName: PWSABUF;
lpQOS: PQOS): BOOL; stdcall;
function WSAHtonl( s: TSocket; hostlong: u_long; lpnetlong: pu_long)
: u_int; stdcall;
function WSAHtons( s: TSocket; hostshort: u_short; lpnetshort: pu_short)
: u_int; stdcall;
function WSAIoctl( s: TSocket; dwIoControlCode: DWORD; lpvInBuffer: Pointer;
cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD;
lpcbBytesReturned: PDWORD; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int; stdcall;
function WSAJoinLeaf( s: TSocket; name: psockaddr; namelen: u_int;
lpCallerData: PWSABUF; lpCalleeData: PWSABUF; lpSQOS: PQOS; lpGQOS: PQOS;
dwFlags: DWORD): TSocket; stdcall;
function WSANtohl( s: TSocket; netlong: u_long; lphostlong: pu_long)
: u_int; stdcall;
function WSANtohs( s: TSocket; netshort: u_short; lphostshort: pu_short)
: u_int; stdcall;
function WSARecv( s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesRecvd: PDWORD; lpFlags: PDWORD;lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int; stdcall;
function WSARecvDisconnect( s: TSocket; lpInboundDisconnectData: PWSABUF)
: u_int; stdcall;
function WSARecvFrom( s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesRecvd: PDWORD; lpFlags: PDWORD; lpFrom: psockaddr;
lpFromlen: PInt; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int; stdcall;
function WSAResetEvent( hEvent: WSAEVENT): BOOL; stdcall;
function WSASend( s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesSent: PDWORD; dwFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int; stdcall;
function WSASendDisconnect( s: TSocket; lpOutboundDisconnectData: PWSABUF)
: u_int; stdcall;
function WSASendTo(s: TSocket; lpBuffers: PWSABUF; dwBufferCount: DWORD;
lpNumberOfBytesSent: PDWORD;dwFlags: DWORD; lpTo: psockaddr; iTolen: u_int;
lpOverlapped: LPWSAOVERLAPPED;
lpCompletionRoutine: PWSAOVERLAPPED_COMPLETION_ROUTINE): u_int; stdcall;
function WSASetEvent( hEvent: WSAEVENT): BOOL; stdcall;
{$IFDEF UNICODE}
function WSASocket( af: u_int; atype: u_int; protocol: u_int;
lpProtocolInfo: PWSAPROTOCOL_INFOW; g: TGroup; dwFlags: Dword)
: TSocket; stdcall;
{$ELSE}
function WSASocket( af: u_int; atype: u_int; protocol: u_int;
lpProtocolInfo: PWSAPROTOCOL_INFOA; g: TGroup; dwFlags: Dword)
: TSocket; stdcall;
{$ENDIF} { UNICODE}
function WSAWaitForMultipleEvents( cEvents: DWORD; lphEvents: LPWSAEVENT;
fWaitAll: BOOL; dwTimeout: DWORD; fAlertable: BOOL): DWORD; stdcall;
{$IFDEF UNICODE}
function WSAAddressToString( lpsaAddress: PSOCKADDR; dwAddressLength: DWORD;
lpProtocolInfo: PWSAPROTOCOL_INFOW; lpszAddressString: WideChar;
lpdwAddressStringLength: PDWORD): u_int; stdcall;
{$ELSE}
function WSAAddressToString( lpsaAddress: PSOCKADDR; dwAddressLength: DWORD;
lpProtocolInfo: PWSAPROTOCOL_INFOA; lpszAddressString: PChar;
lpdwAddressStringLength: PDWORD): u_int; stdcall;
{$ENDIF} { UNICODE}
{$IFDEF UNICODE}
function WSAStringToAddress( AddressString: WideChar; AddressFamily: u_int;
lpProtocolInfo: PWSAPROTOCOL_INFOW; lpAddress: PSOCKADDR;
lpAddressLength: PInt): u_int; stdcall;
{$ELSE}
function WSAStringToAddress( AddressString: PChar; AddressFamily: u_int;
lpProtocolInfo: PWSAPROTOCOL_INFOA; lpAddress: PSOCKADDR;
lpAddressLength: PInt): u_int; stdcall;
{$ENDIF} { UNICODE}
{ Registration and Name Resolution API functions }
{$IFDEF UNICODE}
function WSALookupServiceBegin( lpqsRestrictions: PWSAQUERYSETW;
dwControlFlags: DWORD; lphLookup: LPHANDLE): u_int; stdcall;
{$ELSE}
function WSALookupServiceBegin( lpqsRestrictions: PWSAQUERYSETA;
dwControlFlags: DWORD; lphLookup: LPHANDLE): u_int; stdcall;
{$ENDIF} { UNICODE}
{$IFDEF UNICODE}
function WSALookupServiceNext( hLookup: THANDLE; dwControlFlags: DWORD;
lpdwBufferLength: PDWORD; lpqsResults: PWSAQUERYSETW): u_int; stdcall;
{$ELSE}
function WSALookupServiceNext( hLookup: THANDLE; dwControlFlags: DWORD;
lpdwBufferLength: PDWORD; lpqsResults: PWSAQUERYSETA): LongInt; stdcall;
{$ENDIF} { UNICODE}
function WSALookupServiceEnd( hLookup: THandle): u_int; stdcall;
{$IFDEF UNICODE}
function WSAInstallServiceClass( lpServiceClassInfo: PWSASERVICECLASSINFOW
): u_int; stdcall;
{$ELSE}
function WSAInstallServiceClass( lpServiceClassInfo: PWSASERVICECLASSINFOA
): u_int; stdcall;
{$ENDIF} { UNICODE}
function WSARemoveServiceClass(lpServiceClassId: PGUID): u_int; stdcall;
{$IFDEF UNICODE}
function WSAGetServiceClassInfo( lpProviderId: PGUID; lpServiceClassId: PGUID;
lpdwBufSize: PDWORD; lpServiceClassInfo: PWSASERVICECLASSINFOW)
: u_int; stdcall;
{$ELSE}
function WSAGetServiceClassInfo( lpProviderId: PGUID; lpServiceClassId: PGUID;
lpdwBufSize: PDWORD; lpServiceClassInfo: PWSASERVICECLASSINFOA)
: u_int; stdcall;
{$ENDIF} { UNICODE}
{$IFDEF UNICODE}
function WSAEnumNameSpaceProviders( lpdwBufferLength: PDWORD;
lpnspBuffer: PWSANAMESPACE_INFOW):u_int; stdcall;
{$ELSE}
function WSAEnumNameSpaceProviders( lpdwBufferLength: PDWORD;
lpnspBuffer: PWSANAMESPACE_INFOA):u_int; stdcall;
{$ENDIF} { UNICODE}
{$IFDEF UNICODE}
function WSAGetServiceClassNameByClassId( lpServiceClassId: PGUID;
lpszServiceClassName: WideChar; lpdwBufferLength: PDWORD): u_int; stdcall;
{$ELSE}
function WSAGetServiceClassNameByClassId( lpServiceClassId: PGUID;
lpszServiceClassName: PChar; lpdwBufferLength: PDWORD): u_int; stdcall;
{$ENDIF} { UNICODE}
{$IFDEF UNICODE}
function WSASetService( lpqsRegInfo: PWSAQUERYSETW;
essoperation: TWSAESETSERVICEOP; dwControlFlags: DWORD):u_int; stdcall;
{$ELSE}
function WSASetService( lpqsRegInfo: PWSAQUERYSETA;
essoperation: TWSAESETSERVICEOP; dwControlFlags: DWORD):u_int; stdcall;
{$ENDIF} { UNICODE}
function WSARecvEx(s: TSocket; var buf; len: Integer; var flags: Integer): Integer; stdcall;
function TransmitFile(hSocket: TSocket; hFile: THandle; nNumberOfBytesToWrite: DWORD;
nNumberOfBytesPerSend: DWORD; lpOverlapped: POverlapped;
lpTransmitBuffers: PTransmitFileBuffers; dwReserved: DWORD): BOOL; stdcall;
function WSAMakeASyncReply(Buflen, Error: Word): Longint;
function WSAMakeSelectReply(Event, Error: Word): Longint;
function WSAGetAsyncBuflen(Param: Longint): Word;
function WSAGetAsyncError(Param: Longint): Word;
function WSAGetSelectEvent(Param: Longint): Word;
function WSAGetSelectError(Param: Longint): Word;
implementation
const
winsocket = 'ws2_32.dll';
function WSAMakeASyncReply;
begin
WSAMakeASyncReply:= MakeLong(Buflen, Error);
end;
function WSAMakeSelectReply;
begin
WSAMakeSelectReply:= MakeLong(Event, Error);
end;
function WSAGetAsyncBuflen;
begin
WSAGetAsyncBuflen:= LOWORD(Param);
end;
function WSAGetAsyncError;
begin
WSAGetAsyncError:= HIWORD(Param);
end;
function WSAGetSelectEvent;
begin
WSAGetSelectEvent:= LOWORD(Param);
end;
function WSAGetSelectError;
begin
WSAGetSelectError:= HIWORD(Param);
end;
function accept;
external winsocket name 'accept';
function bind;
external winsocket name 'bind';
function closesocket;
external winsocket name 'closesocket';
function connect;
external winsocket name 'connect';
function getpeername;
external winsocket name 'getpeername';
function getsockname;
external winsocket name 'getsockname';
function getsockopt;
external winsocket name 'getsockopt';
function htonl;
external winsocket name 'htonl';
function htons;
external winsocket name 'htons';
function inet_addr;
external winsocket name 'inet_addr';
function inet_ntoa;
external winsocket name 'inet_ntoa';
function ioctlsocket;
external winsocket name 'ioctlsocket';
function listen;
external winsocket name 'listen';
function ntohl;
external winsocket name 'ntohl';
function ntohs;
external winsocket name 'ntohs';
function recv;
external winsocket name 'recv';
function recvfrom;
external winsocket name 'recvfrom';
function select;
external winsocket name 'select';
function send;
external winsocket name 'send';
function sendto;
external winsocket name 'sendto';
function setsockopt;
external winsocket name 'setsockopt';
function shutdown;
external winsocket name 'shutdown';
function socket;
external winsocket name 'socket';
function gethostbyaddr;
external winsocket name 'gethostbyaddr';
function gethostbyname;
external winsocket name 'gethostbyname';
function getprotobyname;
external winsocket name 'getprotobyname';
function getprotobynumber;
external winsocket name 'getprotobynumber';
function getservbyname;
external winsocket name 'getservbyname';
function getservbyport;
external winsocket name 'getservbyport';
function gethostname;
external winsocket name 'gethostname';
function WSAAsyncSelect;
external winsocket name 'WSAAsyncSelect';
function WSARecvEx;
external winsocket name 'WSARecvEx';
function WSAAsyncGetHostByAddr;
external winsocket name 'WSAAsyncGetHostByAddr';
function WSAAsyncGetHostByName;
external winsocket name 'WSAAsyncGetHostByName';
function WSAAsyncGetProtoByNumber;
external winsocket name 'WSAAsyncGetProtoByNumber';
function WSAAsyncGetprotoByName;
external winsocket name 'WSAAsyncGetprotoByName';
function WSAAsyncGetServByPort;
external winsocket name 'WSAAsyncGetServByPort';
function WSAAsyncGetServByName;
external winsocket name 'WSAAsyncGetServByName';
function WSACancelAsyncRequest;
external winsocket name 'WSACancelAsyncRequest';
function WSASetBlockingHook;
external winsocket name 'WSASetBlockingHook';
function WSAUnhookBlockingHook;
external winsocket name 'WSAUnhookBlockingHook';
function WSAGetLastError;
external winsocket name 'WSAGetLastError';
procedure WSASetLastError;
external winsocket name 'WSASetLastError';
function WSACancelBlockingCall;
external winsocket name 'WSACancelBlockingCall';
function WSAIsBlocking;
external winsocket name 'WSAIsBlocking';
function WSAStartup;
external winsocket name 'WSAStartup';
function WSACleanup;
external winsocket name 'WSACleanup';
{$IFDEF UNICODE}
function WSASetService;
external winsocket name 'WSASetServiceW';
function WSAGetServiceClassNameByClassId;
external winsocket name 'WSAGetServiceClassNameByClassIdW';
function WSAEnumNameSpaceProviders;
external winsocket name 'WSAEnumNameSpaceProvidersW';
function WSAGetServiceClassInfo;
external winsocket name 'WSAGetServiceClassInfoW';
function WSAInstallServiceClass;
external winsocket name 'WSAInstallServiceClassW';
function WSALookupServiceNext;
external winsocket name 'WSALookupServiceNextW';
function WSALookupServiceBegin;
external winsocket name 'WSALookupServiceBeginW';
function WSAStringToAddress;
external winsocket name 'WSAStringToAddressW';
function WSAAddressToString;
external winsocket name 'WSAAddressToStringW';
function WSASocket;
external winsocket name 'WSASocketW';
function WSAEnumProtocols;
external winsocket name 'WSAEnumProtocolsW';
function WSADuplicateSocket;
external winsocket name 'WSADuplicateSocketW';
{$ELSE}
function WSASetService;
external winsocket name 'WSASetServiceA';
function WSAGetServiceClassNameByClassId;
external winsocket name 'WSAGetServiceClassNameByClassIdA';
function WSAEnumNameSpaceProviders;
external winsocket name 'WSAEnumNameSpaceProvidersA';
function WSAGetServiceClassInfo;
external winsocket name 'WSAGetServiceClassInfoA';
function WSAInstallServiceClass;
external winsocket name 'WSAInstallServiceClassA';
function WSALookupServiceNext;
external winsocket name 'WSALookupServiceNextA';
function WSALookupServiceBegin;
external winsocket name 'WSALookupServiceBeginA';
function WSAStringToAddress;
external winsocket name 'WSAStringToAddressA';
function WSAAddressToString;
external winsocket name 'WSAAddressToStringA';
function WSASocket;
external winsocket name 'WSASocketA';
function WSAEnumProtocols;
external winsocket name 'WSAEnumProtocolsA';
function WSADuplicateSocket;
external winsocket name 'WSADuplicateSocketA';
{$ENDIF} { UNICODE}
function WSALookupServiceEnd;
external winsocket name 'WSALookupServiceEnd';
function WSARemoveServiceClass;
external winsocket name 'WSARemoveServiceClass';
function WSAWaitForMultipleEvents;
external winsocket name 'WSAWaitForMultipleEvents';
function WSASetEvent;
external winsocket name 'WSASetEvent';
function WSASendTo;
external winsocket name 'WSASendTo';
function WSASendDisconnect;
external winsocket name 'WSASendDisconnect';
function WSASend;
external winsocket name 'WSASend';
function WSAResetEvent;
external winsocket name 'WSAResetEvent';
function WSARecvFrom;
external winsocket name 'WSARecvFrom';
function WSARecvDisconnect;
external winsocket name 'WSARecvDisconnect';
function WSARecv;
external winsocket name 'WSARecv';
function WSAIoctl;
external winsocket name 'WSAIoctl';
function WSAJoinLeaf;
external winsocket name 'WSAJoinLeaf';
function WSANtohl;
external winsocket name 'WSANtohl';
function WSANtohs;
external winsocket name 'WSANtohs';
function WSAHtons;
external winsocket name 'WSAHtons';
function WSAHtonl;
external winsocket name 'WSAHtonl';
function WSAGetQOSByName;
external winsocket name 'WSAGetQOSByName';
function WSAGetOverlappedResult;
external winsocket name 'WSAGetOverlappedResult';
function WSAEventSelect;
external winsocket name 'WSAEventSelect';
function WSAEnumNetworkEvents;
external winsocket name 'WSAEnumNetworkEvents';
function WSACreateEvent;
external winsocket name 'WSACreateEvent';
function WSAConnect;
external winsocket name 'WSAConnect';
function WSACloseEvent;
external winsocket name 'WSACloseEvent';
function WSAAccept;
external winsocket name 'WSAAccept';
function TransmitFile;
external winsocket name 'TransmitFile';
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -