<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Probleme mit gethostbyname() - nicht null, aber müll]]></title><description><![CDATA[<p>Mhallo mal wieder, ich hab ein Problem mit gethostbyname, aber davor noch a bisserl code:</p>
<pre><code class="language-cpp">.
. // wsa startup hier
.

	SOCKET testSock;	// testsock

	testSock = socket(AF_INET,SOCK_STREAM,0); // socket erstellen, tcp/ip
	if (testSock == INVALID_SOCKET) 
	{
		cout &lt;&lt; &quot;Error while Creating Socket occured \n\n&quot;;
		wsaGetError();
		return 0;
	}
	else 
	{
		cout &lt;&lt; &quot;Socket opened!&quot;;
	}

	// Socket connecten vorbereiten (vars abspeichern...);

	SOCKADDR_IN connectionAddr; // struct SOCKADDR_IN initialisieren
	memset(&amp;connectionAddr,0,sizeof(SOCKADDR_IN)); // speicher leerräumen und vorbereiten
	connectionAddr.sin_family = AF_INET;
	connectionAddr.sin_port = htons(80);	//Elementvars erhalten ihre notwendigen Werte

	//resolve address (by name)
	char *hostname;
	hostname = &quot;www.heise.de&quot;;
	HOSTENT* hp;						//HOSTENT struct erstellen (hp)
	hp = gethostbyname(hostname);
	cout &lt;&lt; (*hp).h_addr_list[0];
	connectionAddr.sin_addr.s_addr = atol(hp-&gt;h_addr_list[0]);
	cout &lt;&lt; &quot;\n\n\nhier sollte die Addresse sein: &quot; &lt;&lt; connectionAddr.sin_addr.s_addr &lt;&lt; &quot;\n\n&quot;; 

	//connect socket
	long testVar;
	testVar = connect(testSock,(SOCKADDR*)&amp;connectionAddr,sizeof(SOCKADDR_IN)); //connectebefehl mit pointerverweis

.
. //wsa close
.
	return 0;
</code></pre>
<p>So ich hab jetzt einfach mal <a href="http://heise.de" rel="nofollow">heise.de</a> genommen, weil sich des immer anbietet. Mein Problem: das, was da im Struct hp_addr_list[0]; gespeichert ist ist keinesfalls die Adresse im inet_addr() Format, sondern sieht so aus (bei Ausgabe mit &quot;cout&quot;), dass einfach auch <a href="http://www.heise.de" rel="nofollow">www.heise.de</a> dasteht, bloss mit 3 merkwürdigen sonderzeichen davor, die ich nicht einmal in einer Zeichentabelle gefunden habe. (ein seltsames c , über dem eine ± ist, darauf folgt ein &quot;e&quot; wie aus einer Fremdsprache.)</p>
<p>Woran kanns liegen, oder ist der Code einfach nur Dreck ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/82018/probleme-mit-gethostbyname-nicht-null-aber-müll</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 19:14:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/82018.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Aug 2004 14:03:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit gethostbyname() - nicht null, aber müll on Fri, 06 Aug 2004 14:03:11 GMT]]></title><description><![CDATA[<p>Mhallo mal wieder, ich hab ein Problem mit gethostbyname, aber davor noch a bisserl code:</p>
<pre><code class="language-cpp">.
. // wsa startup hier
.

	SOCKET testSock;	// testsock

	testSock = socket(AF_INET,SOCK_STREAM,0); // socket erstellen, tcp/ip
	if (testSock == INVALID_SOCKET) 
	{
		cout &lt;&lt; &quot;Error while Creating Socket occured \n\n&quot;;
		wsaGetError();
		return 0;
	}
	else 
	{
		cout &lt;&lt; &quot;Socket opened!&quot;;
	}

	// Socket connecten vorbereiten (vars abspeichern...);

	SOCKADDR_IN connectionAddr; // struct SOCKADDR_IN initialisieren
	memset(&amp;connectionAddr,0,sizeof(SOCKADDR_IN)); // speicher leerräumen und vorbereiten
	connectionAddr.sin_family = AF_INET;
	connectionAddr.sin_port = htons(80);	//Elementvars erhalten ihre notwendigen Werte

	//resolve address (by name)
	char *hostname;
	hostname = &quot;www.heise.de&quot;;
	HOSTENT* hp;						//HOSTENT struct erstellen (hp)
	hp = gethostbyname(hostname);
	cout &lt;&lt; (*hp).h_addr_list[0];
	connectionAddr.sin_addr.s_addr = atol(hp-&gt;h_addr_list[0]);
	cout &lt;&lt; &quot;\n\n\nhier sollte die Addresse sein: &quot; &lt;&lt; connectionAddr.sin_addr.s_addr &lt;&lt; &quot;\n\n&quot;; 

	//connect socket
	long testVar;
	testVar = connect(testSock,(SOCKADDR*)&amp;connectionAddr,sizeof(SOCKADDR_IN)); //connectebefehl mit pointerverweis

.
. //wsa close
.
	return 0;
</code></pre>
<p>So ich hab jetzt einfach mal <a href="http://heise.de" rel="nofollow">heise.de</a> genommen, weil sich des immer anbietet. Mein Problem: das, was da im Struct hp_addr_list[0]; gespeichert ist ist keinesfalls die Adresse im inet_addr() Format, sondern sieht so aus (bei Ausgabe mit &quot;cout&quot;), dass einfach auch <a href="http://www.heise.de" rel="nofollow">www.heise.de</a> dasteht, bloss mit 3 merkwürdigen sonderzeichen davor, die ich nicht einmal in einer Zeichentabelle gefunden habe. (ein seltsames c , über dem eine ± ist, darauf folgt ein &quot;e&quot; wie aus einer Fremdsprache.)</p>
<p>Woran kanns liegen, oder ist der Code einfach nur Dreck ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/576882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/576882</guid><dc:creator><![CDATA[seth*- 0]]></dc:creator><pubDate>Fri, 06 Aug 2004 14:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit gethostbyname() - nicht null, aber müll on Sat, 07 Aug 2004 11:38:03 GMT]]></title><description><![CDATA[<p>Das stimmt schon soweit, die IP ist nicht in Buschtaben sondern als Zahl gespeichert...</p>
<p>änder dies mal</p>
<pre><code class="language-cpp">connectionAddr.sin_addr.s_addr = atol(hp-&gt;h_addr_list[0]);
</code></pre>
<p>in</p>
<pre><code class="language-cpp">connectionAddr.sin_addr = *(in_addr*)hp-&gt;h_addr_list[0];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/577355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/577355</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Sat, 07 Aug 2004 11:38:03 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit gethostbyname() - nicht null, aber müll on Sat, 07 Aug 2004 20:53:57 GMT]]></title><description><![CDATA[<p>ahh funktioniert, danke, god :D, wenn du mir noch erklärst was es mit dem in_addr* auf sich hat werd ich nen kleinen Altar für dich errichten ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/577593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/577593</guid><dc:creator><![CDATA[seth*- 0]]></dc:creator><pubDate>Sat, 07 Aug 2004 20:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit gethostbyname() - nicht null, aber müll on Sat, 07 Aug 2004 21:48:35 GMT]]></title><description><![CDATA[<p>Das ist ein einfacher Cast in einen Pointer auf eine in_addr-Struktur, den du dann dereferenzierst - wenn mich nicht alles täuscht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/577603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/577603</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 07 Aug 2004 21:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit gethostbyname() - nicht null, aber müll on Sun, 08 Aug 2004 03:10:55 GMT]]></title><description><![CDATA[<p>dieser cast wäre nicht möglich:</p>
<pre><code class="language-cpp">(in_addr)hp-&gt;h_addr_list[0];
</code></pre>
<p>deshalb wird das über einen Pointer gemacht...</p>
<p>in_addr ist im Grunde genommen einfach eine 4 Byte große Zahl. IPs werden mit Punkten geschrieben um dies für Menschen leichter lesbar zu machen - ein PC braucht sowas nicht - für ihn reicht einfnach die reine Zahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/577665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/577665</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Sun, 08 Aug 2004 03:10:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit gethostbyname() - nicht null, aber müll on Sun, 08 Aug 2004 12:04:06 GMT]]></title><description><![CDATA[<p>ahso sozusagen einfach nur ne feine konvertierungsanweisung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Danke euch beiden, &lt;- me hat wieder etwas mehr verstanden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/577758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/577758</guid><dc:creator><![CDATA[seth*- 0]]></dc:creator><pubDate>Sun, 08 Aug 2004 12:04:06 GMT</pubDate></item></channel></rss>