⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwawinsock.pas

📁 雷神之锤2(Quake2)Delphi源码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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 + -