AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wo ist getaddrinfo?

Ein Thema von muRR · begonnen am 4. Okt 2006 · letzter Beitrag vom 8. Dez 2024
Antwort Antwort
muRR
(Gast)

n/a Beiträge
 
#1

Wo ist getaddrinfo?

  Alt 4. Okt 2006, 02:31
Hallo!
Ich hoffe, dass ihr mir weiterhelfen könnt. Ich stehe vor dem Problem, dass ich eine Internetanwendung basierend auf der hier dokumentierten WinSock-API programmieren wollte und diese anscheinend nicht vollständig in die Unit WinSock implementiert wurde. Zumindest gibt es bei mir die Funktion getaddrinfo nicht. Dabei wird einem doch dringendst zum Gebrauch dieser Funktion anstelle von gethostbyname geraten.
Weiß da jemand mehr?
  Mit Zitat antworten Zitat
muRR
(Gast)

n/a Beiträge
 
#2

Re: Wo ist getaddrinfo?

  Alt 4. Okt 2006, 14:59
Hab es jetzt so gelöst, dass ich die Funktion selbst importiere und die benötigten Typen deklariere. Funktioniert nach ersten Tests auch.

Delphi-Quellcode:

uses
  Windows, WinSock;

type
  PAddrInfo = ^TAddrInfo;
  TAddrInfo = packed record
    ai_flags: Integer;
    ai_family: Integer;
    ai_socktype: Integer;
    ai_protocol: Integer;
    ai_addrlen: LongWord;
    ai_canonname: Array of Char;
    ai_addr: PSOCKADDR;
    ai_next: PAddrInfo;
  end;

function getaddrinfo(const nodename: PChar; const servname : PChar; const hints: PAddrInfo; var res: PAddrInfo): Integer; stdcall; external 'ws2_32.dllname 'getaddrinfo';
procedure freeaddrinfo(ai: PAddrInfo); stdcall; external 'ws2_32.dllname 'freeaddrinfo';

implementation

...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wo ist getaddrinfo?

  Alt 8. Dez 2024, 23:37
Bevor das noch jemand so findet und auf die Idee kommt es benutzen zu wollen...

* Das Array of Char ist natürlich falsch und müsste ein PChar PAnsiChar sein.

* Außerdem ist der Code uralt, und seit Unicode (Delphi 2009) müssen die PChar durch PAnsiChar ersetzt werden.
OK, eigentlich war das schon immer falsch, da diese Funktion auch vorher bereits explizit als ANSI definiert war. (wie man in der Dokumentation lesen konnte/kann)



Ansonsten NICHT selbst machen, sondern siehe
addrinfo TAddrInfoA und MSDN-Library durchsuchengetaddrinfo in Winapi.Winsock2.pas
addrinfoW TAddrInfoW und MSDN-Library durchsuchenGetAddrInfoW, ebenfalls in Winapi.Winsock2.pas
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz