function ScanTCPPort(ipstr : string; Port: DWORD): Boolean;
var
  option: DWORD;
  TcpSock: TSocket;
  InAddr: TSockAddrIn;
  IP : DWORD;
begin
  result := False;
  IP := ntohl(inet_addr(PChar(ipstr)));
  if IP = INADDR_NONE then  //invalid IP address!
    exit; 
  // Create/open a socket (stream, not datagram)
  TcpSock := socket(AF_INET, SOCK_STREAM, 0);
  if TcpSock = INVALID_SOCKET then  //socket error
    exit;
  try
    // Set socket options
    option := 0;
    setsockopt(TcpSock, SOL_SOCKET, SO_KEEPALIVE, @option, sizeof(option));
    option := 1;
    setsockopt(TcpSock, SOL_SOCKET, SO_DONTLINGER, @option, sizeof(option));
    //if winsock 1.1, including the next sentence, otherwise, skip it.
    setsockopt(TcpSock, IPPROTO_TCP, TCP_NODELAY, @option, sizeof(option));
    //Initialize address structure
    ZeroMemory(@InAddr, sizeof(InAddr));
    InAddr.sin_family := AF_INET;
    InAddr.sin_addr.S_addr := ntohl(IP);
    InAddr.sin_port := htons(Port);
    //Try to connect
    Result := connect(TcpSock, InAddr, sizeof(InAddr)) = 0;
  finally
    //Close the socket
    closesocket(TcpSock);
  end;
end;总是返回FALSE;我是这样写的: if ScanTCPPort('222.73.63.166',80) then showmessage('ok') else showmessage('no');大师帮忙检查下 哪里有错误吗? 编译时还有2个小提示..