Ich lerne Networking in c durch Blick auf den Code eines funktionierenden Paket-Sniffer innerhalb von Microsoft Visual Basic 2013.Untersuchen von C-Header-Dateien Weitere
Im Folgenden finden Sie Code, der einen Zeiger auf eine hostent Struktur schafft, erhält die localhost Hostnamen, und lädt es in den hostent Strukturlokalen genannt.
Der nächste Teil ermöglicht das Drucken der Adresse in Dezimalschreibweise.
for (i = 0; local->h_addr_list[i] != 0; ++i)
{
memcpy(&addr, local->h_addr_list[i], sizeof(struct in_addr));
printf(" Interface Number : %d Address : %s\n",i,inet_ntoa(addr));
}
Nun möchte ich verstehen, wie das alles funktioniert und mehr. . .
Say I inet_ntoa verstehen wollen(), ich mit der rechten Maustaste und Zur Definition oder Go To Erklärung und sendet sie mir zu Winsock2.h, die zeigt, gehen wählen:
inet_ntoa(
__in struct in_addr in
);
Dies scheint zu sein, zeigen Sie mir den Parameter, aber nicht die Funktionsweise der Funktion oder den Rückgabewert. Das bedeutet, dass ich mich auf die MSDN beziehen muss, um zu verstehen, was jedes Mal passiert.
Meine Frage ist: Wo ist der Code zu lesen, was passiert, so muss ich nicht die Dokumente verwenden?
z. Wo ist der inet_ntoa
Funktionsinhalt?
'inet_ntoa' in einem System-DLL implementiert, speziell' Ws2_32.dll'. Es ist keine Microsoft-Quelle verfügbar. Sie können Open-Source-Implementierungen finden, die für andere Plattformen verfügbar sind. Linux Dokumentation ist hier http://linux.die.net/man/3/inet_ntoa –
Dies ist in vielen [tag: c] Bibliotheken implementiert, zum Beispiel * glibc * implementiert es und Sie können es Code lesen, da Sie die herunterladen können ganz * glibc *. Es ist in Headerdateien nicht implementiert. –
Ist das ein _full_ Zitat von WinSock2.h? Weil die Funktionsdeklaration keinen Rückgabetyp zu haben scheint, der überhaupt nicht funktionieren sollte. –