<?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[Socket, connect() funktioniert trotz ungültiger Adresse.]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe gestern einmal mich mit der Socketprogrammierung befasst. Es hat auch soweit alles geklappt, wie mir scheint, aber aus irgendeinem Grund trifft</p>
<pre><code class="language-cpp">if( !connect( /* parameter */ ) )
{
    /*
     *  Fehlermeldung &amp; return -1
     */
}
</code></pre>
<p>niemals zu.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sys/socket.h&gt;
#include &lt;unistd.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;arpa/inet.h&gt;
using namespace std;

int main()
{
	int sock, sockConnect;
	struct sockaddr_in addr;

	sock = socket( AF_INET, SOCK_STREAM, 0 );
	if( !sock )
	{
		cerr &lt;&lt; __FILE__
			 &lt;&lt; ':'
			 &lt;&lt; __LINE__
			 &lt;&lt; &quot;:socket() failed&quot;
			 &lt;&lt; endl;
		return -1;
	}

	addr.sin_family = AF_INET;
	addr.sin_port = htons( 80 );
	addr.sin_addr.s_addr = inet_addr( &quot;641&quot; ); //Google: 72.14.221.104

	sockConnect = connect( sock, (struct sockaddr*) &amp;addr, sizeof( addr ) );
	if( !sock )
	{
		cerr &lt;&lt; __FILE__
			 &lt;&lt; ':'
			 &lt;&lt; __LINE__
			 &lt;&lt; &quot;:connect() failed&quot;
			 &lt;&lt; endl;
		return -2;
	}

	close( sock );
	return 0;
}
</code></pre>
<p>Auf Zeile 26 meines Codes lege ich die Adresse fest. Ich habe anfangs zum Test die Google-IP verwendet und da ich keine Fehlermeldung bekam, dachte ich mir, alles würde funktionieren. Doch als ich zum Testen die IP zufällig geändert hatte, ist mir aufgefallen, dass so oder so keine Fehlermeldung kommt. Wieso das?</p>
<p>Danke<br />
Squall</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202890/socket-connect-funktioniert-trotz-ungültiger-adresse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 04:55:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202890.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Jan 2008 14:21:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Socket, connect() funktioniert trotz ungültiger Adresse. on Wed, 16 Jan 2008 14:21:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe gestern einmal mich mit der Socketprogrammierung befasst. Es hat auch soweit alles geklappt, wie mir scheint, aber aus irgendeinem Grund trifft</p>
<pre><code class="language-cpp">if( !connect( /* parameter */ ) )
{
    /*
     *  Fehlermeldung &amp; return -1
     */
}
</code></pre>
<p>niemals zu.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sys/socket.h&gt;
#include &lt;unistd.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;arpa/inet.h&gt;
using namespace std;

int main()
{
	int sock, sockConnect;
	struct sockaddr_in addr;

	sock = socket( AF_INET, SOCK_STREAM, 0 );
	if( !sock )
	{
		cerr &lt;&lt; __FILE__
			 &lt;&lt; ':'
			 &lt;&lt; __LINE__
			 &lt;&lt; &quot;:socket() failed&quot;
			 &lt;&lt; endl;
		return -1;
	}

	addr.sin_family = AF_INET;
	addr.sin_port = htons( 80 );
	addr.sin_addr.s_addr = inet_addr( &quot;641&quot; ); //Google: 72.14.221.104

	sockConnect = connect( sock, (struct sockaddr*) &amp;addr, sizeof( addr ) );
	if( !sock )
	{
		cerr &lt;&lt; __FILE__
			 &lt;&lt; ':'
			 &lt;&lt; __LINE__
			 &lt;&lt; &quot;:connect() failed&quot;
			 &lt;&lt; endl;
		return -2;
	}

	close( sock );
	return 0;
}
</code></pre>
<p>Auf Zeile 26 meines Codes lege ich die Adresse fest. Ich habe anfangs zum Test die Google-IP verwendet und da ich keine Fehlermeldung bekam, dachte ich mir, alles würde funktionieren. Doch als ich zum Testen die IP zufällig geändert hatte, ist mir aufgefallen, dass so oder so keine Fehlermeldung kommt. Wieso das?</p>
<p>Danke<br />
Squall</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437693</guid><dc:creator><![CDATA[Squall]]></dc:creator><pubDate>Wed, 16 Jan 2008 14:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Socket, connect() funktioniert trotz ungültiger Adresse. on Wed, 16 Jan 2008 14:25:44 GMT]]></title><description><![CDATA[<p>inet_addr() liefert bei einem fehler -1 zurück. welches der ip-adresse 255.255.255.255 enspricht, also eine gültige adresse. inet_aton() ist da etwas<br />
besser. damit kannst du besser überprüfen, ob etwas schief gelaufen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437696</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Wed, 16 Jan 2008 14:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Socket, connect() funktioniert trotz ungültiger Adresse. on Wed, 16 Jan 2008 14:25:54 GMT]]></title><description><![CDATA[<p>Du hast den Rückgabewert von connect() in &quot;sockConnect&quot; abgelegt und fragst anschließend ab, ob &quot;sock&quot; intakt ist - ist das beabsichtigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437697</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 16 Jan 2008 14:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Socket, connect() funktioniert trotz ungültiger Adresse. on Wed, 16 Jan 2008 16:32:02 GMT]]></title><description><![CDATA[<p>Das liegt daran, dass der Rückgabewert weder von socket noch von connect im Fehlerfall &quot;false&quot; ist. Für socket gilt, dass 0 sowie alle positiven Zahlen durchaus gültige Sockets sind, für connect ist 0 sogar der einzige Erfolgsgfall. Fehler ist -1.</p>
<p>Ausserdem musst Du nach dem connect auch den Rückgabewert von connect prüfen, der Wert von sock wird sich nicht mehr ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437698</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 16 Jan 2008 16:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to Socket, connect() funktioniert trotz ungültiger Adresse. on Thu, 17 Jan 2008 14:41:12 GMT]]></title><description><![CDATA[<p>Okay danke.<br />
Ich hatte nicht ganz beachtet, dass ich dort ja auch eine Funktion verwende.<br />
Nun funktioniert es. <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>Gruß<br />
Squall</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1438456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1438456</guid><dc:creator><![CDATA[Squall]]></dc:creator><pubDate>Thu, 17 Jan 2008 14:41:12 GMT</pubDate></item></channel></rss>