Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » getHostname() funzt nicht???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.05.2004, 14:37 Uhr
~Catherine
Gast


Hallo Männers,

Ich dachte ich wende mich mal an die Herren der Schöpfung
Kann es sein, dass getHostname() nur dann funktioniert, wenn auch ein socket initialisiert worden ist?

Irgendwie liefert die Methode einen SOCKET_ERROR!

C++:
char *hostname = "";
QString hostFromXML;
//Read server's name from xml file...
hostFromXML = compoundElement.attribute("Name");
//...and compare with the machine's name
if(gethostname(hostname, sizeof(hostname)) == 0)
{
  qDebug("Hostname: %s \n", hostname);
  qDebug("I am the server!");
  //init Server
}
else if(gethostname(hostname, sizeof(hostname)) == SOCKET_ERROR)
{
    qDebug("Not able to read hostname!");
}



includiert habe ich "Winsock2.h".

Muss der Rechnername denn nicht immer lesbar sein, im gegensatz zu einer IP?
Wie kann ich den Namen sonst auslesen?

Grüsse
Catherine


Bearbeitung von Pablo:

Benutze die CPPS selber, danke.


Dieser Post wurde am 24.05.2004 um 17:38 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.05.2004, 14:50 Uhr
virtual
Sexiest Bit alive
(Operator)


Du musst bei WIndows meist das WSA initialisieren, guck mal in der MSDN nach WSAStartup.
Mit QT habe ich noch nicht soviel gemacht, denke mir aber, daß die ggf eine Wrapperfunktion bereitstellen, so daß Du Dir das WSAStartup bei Verwendung der Wrapperfunktion sparen könntest.

Ansonsten:
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.05.2004, 14:55 Uhr
virtual
Sexiest Bit alive
(Operator)


Autsch,

ich seh grad:

C++:
char *hostname = "";
[...]
if(gethostname(hostname, sizeof(hostname)) == 0)


das ist ziemlich tödlich:
1. hostname zeigt auf einen Speicherbereich, der a) nicht beschreibbar und b) nur zwei Byte groß ist.
2. sizeof(hostname) gibt nichjt die Größe des Speicherbereichs, sonder die des Zeiger zurück (also 4 auf 32 Bit systemen).

Daher:

C++:
char hostname[256];
...
if(gethostname(hostname, sizeof(hostname)) == 0)


sollte Dich glücklicher machen; nichtsdestotrotz kann eventuell das mit dem WSAStartup von nöten sein.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.05.2004, 15:06 Uhr
~Catherine
Gast


@virtual

Supi :o)
Danke für die schnelle Antwort...werde das gleich mal testen.

Grüsse
Catherine
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.05.2004, 16:31 Uhr
~Catherine
Gast


Yuhuu

Danke, hab's hinbekommen.

Küsschen
Catherine
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.05.2004, 16:53 Uhr
virtual
Sexiest Bit alive
(Operator)


Anmerkung:

C++:
if(gethostname(hostname, sizeof(hostname)) == 0)
{
...
}
else if(gethostname(hostname, sizeof(hostname)) == SOCKET_ERROR)
{
...
}


Ist suboptimal, besser wäre:

C++:
int res = gethostname(hostname, sizeof(hostname));

if (res==0){
...
}
else if(res == SOCKET_ERROR)
{
...
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.05.2004, 17:50 Uhr
(un)wissender
Niveauwart


Suboptimal ist ein übles Wort, ebenso wie negatives Wachstum.
Wollte ich mal völlig unmotiviert und ungefragt in den Raum werfen.

--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.05.2004, 22:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wieso, "suboptimal" klingt doch genauso wie "viraler Infekt" bösartig
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: