[Lazarus] fpConnect

Kaj Mikkelsen laz at vgdata.dk
Tue Nov 15 16:37:32 CET 2016


Hi

I need a method to tell whether a specific port is open on a remote host.

Ihave written a function for it, but it seems that fpConnect always 
returns 0.

What am I missing?

/Kaj


Function TMainForm.OpenPort(  IP:String;Port:Integer): Boolean;
Var
   Sock: LongInt;
   IPAddr: sockaddr;
begin

   sock := fpsocket(AF_INET, SOCK_DGRAM, 0);
   IPAddr.sin_family := AF_INET;
   IPAddr.sin_addr.s_addr := StrToHostAddr(IP).s_addr;
   IPAddr.sin_port := htons(port);
   if (fpConnect(sock, at IPAddr,SizeOf(IPAddr)) = 0) then
   Begin
     Result :=  True;
     CloseSocket(sock);
   End
   Else
   Begin
     Result := False;
   end;
end;



More information about the Lazarus mailing list