ip-server-frage
-
*weinwein antwortbrauch*
-
socket++ schrieb:
have jetzt probleme mit den zeilen:
char hostname[512]; printf("Enter Hostname: "); //x.no-ip.info gets(hostname);rc=dumpHost(hostname);ich will es automatisch machen lassen ohne eine benutzereingabe
und dann in die codeaddr.sin_addr.s_addr=inet_addr("hostname");einfügen...wie würde das aussehen ich bekomms nicht gebacken
Das hat eigentlich nichts mit Sockets zu tun, sonder gehört zu C. Deine Probleme solltest du ganz einfach selber lösen können, anscheinend fehlen dir Grundkenntnisse in C. Arbeite ein Tutorial zu C durch, z.B. dieses:
http://www.pronix.de/pronix-4.htmlmfg.
-
ich brauche kein totorial..
aber wenn ich hostname so definiere ist das ja falsch:
hostname = x
ergebnis der auflösung wäre dann zb y
addr.sin_addr.s_addr=inet_addr(y);
das geht ja mal keinen meter...
und wenn ich
char hostname[x];
sage hab ich das prob auch nicht wech
-
socket++ schrieb:
ich brauche kein totorial..
Doch definitiv!
-
ach komm totorials sind blöd
-
socket++ schrieb:
ach komm totorials sind blöd
Jemanden helfen der keine Ahnung von C hat ist auch blöd.
mfg.
-
komm wenn du das tot macht mach ich es auch
-
socket++ schrieb:
komm wenn du das tot macht mach ich es auch
geh aber du das leben können ich auch fliegen
mfg.
-
ok du darfst ein s dazutun...
-
socket++ schrieb:
ok du darfst ein s dazutun...
Wozu? Sorry ich hab deinen Satz echt nicht verstanden.
mfg.
-
tot=totorial
komm wenn du das tot mach\"s\"t mach ich es auch
tut mir leid

aber komm schon wie kann ich char hostname[512]; direkt meinen no-ip-acc zuweisen?
-
socket++ schrieb:
aber komm schon wie kann ich char hostname[512]; direkt meinen no-ip-acc zuweisen?
Deinem was? no-ip-acc? Achso.. Also du löst den Hostnamen auf mit der Funktion in der hostent.cpp. Die erhaltene IP speicherst du in einem C-String und übergibst das ganze dann an die Socket-Struktur.
mfg.
-
ja das weiß ich ja aber ich will mein programm starten (client)
dann führt das programm gleich am anfang hostent aus...mit der vorgabe des hostes
das ergebnis wird
addr.sin_addr.s_addr=inet_addr(y);
hier eingefügt als y
nur so kann ich das ja nicht schreiben
wie dann?
-
socket++ schrieb:
nur so kann ich das ja nicht schreiben
Wieso nicht?
mfg.
-
char hostname["xenchat.no-ip.info"];
hat die folge:
size of array `hostname' has non-integer type
string geht ja auch nicht
..................................
addr.sin_addr.s_addr=inet_addr(x); // zielrechner ist unser eigener
const char x[127.0.0.1];
too many decimal points in numberstring x = "127.0.0.1";
cannot convert `std::string' to `const char*' for argument `1' to `long unsigned int inet_addr(const char*)'
-
socket++ schrieb:
char hostname["xenchat.no-ip.info"];
hat die folge:
size of array `hostname' has non-integer type
string geht ja auch nicht
..................................
addr.sin_addr.s_addr=inet_addr(x); // zielrechner ist unser eigener
const char x[127.0.0.1];
too many decimal points in numberstring x = "127.0.0.1";
cannot convert `std::string' to `const char*' for argument `1' to `long unsigned int inet_addr(const char*)'Um einen String in einen const char* umzuwandeln musst du die Elementfunktion .c_str() aufrufen.
Anscheinend hast du Arrays und C-Strings noch nicht verstanden. Ich empfehle dir dringend in ein TUtorial reinzuschauen.
mfg.
-
k eine letzte frage noch...
string hostname;
hostname = "x.no-ip.info";rc=dumpHost(hostname.c_str());
würde das gehen?
-
hat sic hschon erledigt freund hat es mir erklärt...der hat mir auch den account gegeben

-
ich habe jetzt also alles richtig gemacht:
string b = inet_ntoa(addra);addr.sin_addr.s_addr=inet_addr(b.c_str());jetzt kompiliert er das programm, aber er bleibt nachder ausgabe von
printf("Host Ip Address: %s\n",inet_ntoa(addra));stehen
was kann der fehler sein?
-
aja wenn ich hier:
addr.sin_addr.s_addr=inet_addr(b.c_str());
anstatt b.c_str()
eine ip angebe funktioniert es