getservbyport und getservbyname
-
hi,
Ich komme irgendwie mit meinem Programm nicht weiter !
Ich geb übergeb meinem Programm über ein Kommandozeilenargument eine Portnummer oder einen Dienstnamen und will dazu den Dienstnamen oder die Portnummer und evtl Aliase erhalten !Nur kommt dauernd "no such service found", egal was ich eingebe !
Die jeweilige Funktion (getservbyport oder getservbyname), die aufgerufen wird, gibt anscheinend 0 oder nen Error zurück, hab bloß keine Ahnung wieso !Hier der Code dazu:
#include <iostream> #include <WinSock2.h> #include <string> using namespace std; int resolve (const char *servername) { // Infos zu den Diensten struct servent *serv; unsigned short port; // handelt es sich um eine Portnummer ? port = (unsigned short)strtoul(servername, NULL, 0); if (port) { serv = getservbyport(htons(port), "tcp"); } else { serv = getservbyname(servername, "tcp"); } if (serv == 0) { cerr << "No such service found" << endl; return 1; } port = ntohs(serv->s_port); cout << port << " -> " << serv->s_name << endl; // durch Liste mit Aliasen for (int i = 0; serv->s_aliases[i] != NULL; i++) { cout << port << " -> " << serv->s_aliases[i] << " (Alias)" << endl; } return 0; } int main(int argc, char *argv[]) { for (int n = 1; n < argc; n++) { resolve(argv[n]); } return 0; }Bin bloß irgendwie zu dumm dazu, das zu kapieren !
Hoffe, ihr könnt mir weiterhelfen !
mfg
-
#include <WinSock2.h> klingt nach Windows. Dies ist das Subforum für den reinen C++-Standard. Poste lieber mal im WinAPI-Forum.
-
ok, erstelle dort nen Beitrag !
ps: kann gelöscht werden

mfg