📄 jwawinsock.pas
字号:
begin
fdset.fd_array[I] := fd;
fdset.fd_count := fdset.fd_count + 1;
end;
end;
end;
procedure FD_ZERO(var fdset: TFdSet);
begin
fdset.fd_count := 0;
end;
function FD_ISSET(fd: TSocket; var fdset: TFdSet): Boolean;
begin
Result := __WSAFDIsSet(fd, fdset) <> 0;
end;
function timerisset(const tvp: TTimeVal): Boolean;
begin
Result := (tvp.tv_sec <> 0) or (tvp.tv_usec <> 0);
end;
procedure timerclear(var tvp: TTimeVal);
begin
tvp.tv_sec := 0;
tvp.tv_usec := 0;
end;
function _IO(x, y: DWORD): DWORD;
begin
Result := IOC_VOID or (x shl 8) or y;
end;
function _IOR(x, y, t: DWORD): DWORD;
begin
Result := IOC_OUT or ((T and IOCPARM_MASK) shl 16) or (x shl 8) or y;
end;
function _IOW(x, y, t: DWORD): DWORD;
begin
Result := DWORD(IOC_IN or ((T and IOCPARM_MASK) shl 16) or (x shl 8) or y);
end;
function IN_CLASSA(i: DWORD): Boolean;
begin
Result := i and DWORD($80000000) = 0;
end;
function IN_CLASSB(i: DWORD): Boolean;
begin
Result := i and DWORD($C0000000) = DWORD($80000000);
end;
function IN_CLASSC(i: DWORD): Boolean;
begin
Result := (i and DWORD($e0000000)) = DWORD($C0000000);
end;
function h_errno: Integer;
begin
Result := WSAGetLastError;
end;
{$IFDEF DYNAMIC_LINK}
var
_accept: Pointer;
function accept;
begin
GetProcedureAddress(_accept, wsock32, 'accept');
asm
mov esp, ebp
pop ebp
jmp [_accept]
end;
end;
{$ELSE}
function accept; external wsock32 name 'accept';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_bind: Pointer;
function bind;
begin
GetProcedureAddress(_bind, wsock32, 'bind');
asm
mov esp, ebp
pop ebp
jmp [_bind]
end;
end;
{$ELSE}
function bind; external wsock32 name 'bind';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_closesocket: Pointer;
function closesocket;
begin
GetProcedureAddress(_closesocket, wsock32, 'closesocket');
asm
mov esp, ebp
pop ebp
jmp [_closesocket]
end;
end;
{$ELSE}
function closesocket; external wsock32 name 'closesocket';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_connect: Pointer;
function connect;
begin
GetProcedureAddress(_connect, wsock32, 'connect');
asm
mov esp, ebp
pop ebp
jmp [_connect]
end;
end;
{$ELSE}
function connect; external wsock32 name 'connect';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_ioctlsocket: Pointer;
function ioctlsocket;
begin
GetProcedureAddress(_ioctlsocket, wsock32, 'ioctlsocket');
asm
mov esp, ebp
pop ebp
jmp [_ioctlsocket]
end;
end;
{$ELSE}
function ioctlsocket; external wsock32 name 'ioctlsocket';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_getpeername: Pointer;
function getpeername;
begin
GetProcedureAddress(_getpeername, wsock32, 'getpeername');
asm
mov esp, ebp
pop ebp
jmp [_getpeername]
end;
end;
{$ELSE}
function getpeername; external wsock32 name 'getpeername';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_getsockname: Pointer;
function getsockname;
begin
GetProcedureAddress(_getsockname, wsock32, 'getsockname');
asm
mov esp, ebp
pop ebp
jmp [_getsockname]
end;
end;
{$ELSE}
function getsockname; external wsock32 name 'getsockname';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_getsockopt: Pointer;
function getsockopt;
begin
GetProcedureAddress(_getsockopt, wsock32, 'getsockopt');
asm
mov esp, ebp
pop ebp
jmp [_getsockopt]
end;
end;
{$ELSE}
function getsockopt; external wsock32 name 'getsockopt';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_htonl: Pointer;
function htonl;
begin
GetProcedureAddress(_htonl, wsock32, 'htonl');
asm
mov esp, ebp
pop ebp
jmp [_htonl]
end;
end;
{$ELSE}
function htonl; external wsock32 name 'htonl';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_htons: Pointer;
function htons;
begin
GetProcedureAddress(_htons, wsock32, 'htons');
asm
mov esp, ebp
pop ebp
jmp [_htons]
end;
end;
{$ELSE}
function htons; external wsock32 name 'htons';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_inet_addr: Pointer;
function inet_addr;
begin
GetProcedureAddress(_inet_addr, wsock32, 'inet_addr');
asm
mov esp, ebp
pop ebp
jmp [_inet_addr]
end;
end;
{$ELSE}
function inet_addr; external wsock32 name 'inet_addr';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_inet_ntoa: Pointer;
function inet_ntoa;
begin
GetProcedureAddress(_inet_ntoa, wsock32, 'inet_ntoa');
asm
mov esp, ebp
pop ebp
jmp [_inet_ntoa]
end;
end;
{$ELSE}
function inet_ntoa; external wsock32 name 'inet_ntoa';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_listen: Pointer;
function listen;
begin
GetProcedureAddress(_listen, wsock32, 'listen');
asm
mov esp, ebp
pop ebp
jmp [_listen]
end;
end;
{$ELSE}
function listen; external wsock32 name 'listen';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_ntohl: Pointer;
function ntohl;
begin
GetProcedureAddress(_ntohl, wsock32, 'ntohl');
asm
mov esp, ebp
pop ebp
jmp [_ntohl]
end;
end;
{$ELSE}
function ntohl; external wsock32 name 'ntohl';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_ntohs: Pointer;
function ntohs;
begin
GetProcedureAddress(_ntohs, wsock32, 'ntohs');
asm
mov esp, ebp
pop ebp
jmp [_ntohs]
end;
end;
{$ELSE}
function ntohs; external wsock32 name 'ntohs';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_recv: Pointer;
function recv;
begin
GetProcedureAddress(_recv, wsock32, 'recv');
asm
mov esp, ebp
pop ebp
jmp [_recv]
end;
end;
{$ELSE}
function recv; external wsock32 name 'recv';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_recvfrom: Pointer;
function recvfrom;
begin
GetProcedureAddress(_recvfrom, wsock32, 'recvfrom');
asm
mov esp, ebp
pop ebp
jmp [_recvfrom]
end;
end;
{$ELSE}
function recvfrom; external wsock32 name 'recvfrom';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_select: Pointer;
function select;
begin
GetProcedureAddress(_select, wsock32, 'select');
asm
mov esp, ebp
pop ebp
jmp [_select]
end;
end;
{$ELSE}
function select; external wsock32 name 'select';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_send: Pointer;
function send;
begin
GetProcedureAddress(_send, wsock32, 'send');
asm
mov esp, ebp
pop ebp
jmp [_send]
end;
end;
{$ELSE}
function send; external wsock32 name 'send';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_sendto: Pointer;
function sendto;
begin
GetProcedureAddress(_sendto, wsock32, 'sendto');
asm
mov esp, ebp
pop ebp
jmp [_sendto]
end;
end;
{$ELSE}
function sendto; external wsock32 name 'sendto';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_setsockopt: Pointer;
function setsockopt;
begin
GetProcedureAddress(_setsockopt, wsock32, 'setsockopt');
asm
mov esp, ebp
pop ebp
jmp [_setsockopt]
end;
end;
{$ELSE}
function setsockopt; external wsock32 name 'setsockopt';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_shutdown: Pointer;
function shutdown;
begin
GetProcedureAddress(_shutdown, wsock32, 'shutdown');
asm
mov esp, ebp
pop ebp
jmp [_shutdown]
end;
end;
{$ELSE}
function shutdown; external wsock32 name 'shutdown';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_socket: Pointer;
function socket;
begin
GetProcedureAddress(_socket, wsock32, 'socket');
asm
mov esp, ebp
pop ebp
jmp [_socket]
end;
end;
{$ELSE}
function socket; external wsock32 name 'socket';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_gethostbyaddr: Pointer;
function gethostbyaddr;
begin
GetProcedureAddress(_gethostbyaddr, wsock32, 'gethostbyaddr');
asm
mov esp, ebp
pop ebp
jmp [_gethostbyaddr]
end;
end;
{$ELSE}
function gethostbyaddr; external wsock32 name 'gethostbyaddr';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_gethostbyname: Pointer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -