I use Delphi XE. There is such a code
function ResolveAddress(Address: String): TInAddr; var Host: PHostEnt; begin Result.S_addr := inet_addr(PChar(Address)); if Result.S_addr = INADDR_NONE then begin Host := gethostbyname(PChar(Address)); if Host <> nil then Result := PInAddr(Host.h_addr_list^)^; end; end; If I call ResolveAddress('localhost') , then inet_addr in the function above returns -1, and if I write
function ResolveAddress(Address: String): TInAddr; var Host: PHostEnt; begin Result.S_addr := inet_addr('localhost'); if Result.S_addr = INADDR_NONE then begin Host := gethostbyname(PChar(Address)); if Host <> nil then Result := PInAddr(Host.h_addr_list^)^; end; end; That's all fine.
I did this inet_addr(PAnsiChar(AnsiString(Address))) , but the result is the same.
PAnsiChar) is worthGetHostByNameforGetHostByName, as far as I can see ... - kamiGetHostByNamedoes not reachinet_addr(PChar(Address))returns earlier - 1 - gregor