<?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[Boost Asio: Exception bei connect]]></title><description><![CDATA[<p>Hallo! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Folgender Code:</p>
<pre><code>void net::TcpClientMessageSocket::connect(char const* host, char const* port) {
	boost::asio::ip::tcp::resolver resolver(ioPool-&gt;getIoService());
	boost::asio::ip::tcp::resolver::iterator iter =
		resolver.resolve(boost::asio::ip::tcp::resolver::query(host, port));

	// Try each available endpoint.
	boost::system::error_code ec;
	for (; iter != boost::asio::ip::tcp::resolver::iterator(); ++iter) {
		std::cout &lt;&lt; &quot;Current endpoint - Address:&quot; &lt;&lt; iter-&gt;endpoint().address().to_string() &lt;&lt;
			&quot; Port: &quot; &lt;&lt; iter-&gt;endpoint().port() &lt;&lt; std::endl;
		socket.connect(*iter, ec);
		if (!ec) {
			return;
		}
	}

	// Could not connect to any endpoint.
	throw boost::system::system_error(ec, &quot;connect&quot;);
}
</code></pre>
<p>Beim Versuch, den Code gegen localhost:12345 auszuführen, fliegt folgende Exception:</p>
<blockquote>
<p>connect: Bei dem Versuch das Zeigerargument eines Aufrufs zu<br />
verwenden, wurde eine ungültige Zeigeradresse gefunden</p>
</blockquote>
<p>Ich habe bis in die Socket-Opts hineindebuggt:</p>
<pre><code>void sync_connect(socket_type s, const socket_addr_type* addr,
    std::size_t addrlen, boost::system::error_code&amp; ec)
{
...
}
</code></pre>
<p>Hier ist addr (was eine sockaddr* ist) 0xCCCCCCCCCCCCCCCC, also wohl uninitialisierter Speicher. Wie passiert das?</p>
<p>Ich vermute einen dummen Fehler, den ich einfach übersehe.<br />
Jemand eine Idee?<br />
Danke &amp; schöne Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338978/boost-asio-exception-bei-connect</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 13:09:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338978.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Jul 2016 17:46:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost Asio: Exception bei connect on Mon, 25 Jul 2016 17:46:46 GMT]]></title><description><![CDATA[<p>Hallo! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Folgender Code:</p>
<pre><code>void net::TcpClientMessageSocket::connect(char const* host, char const* port) {
	boost::asio::ip::tcp::resolver resolver(ioPool-&gt;getIoService());
	boost::asio::ip::tcp::resolver::iterator iter =
		resolver.resolve(boost::asio::ip::tcp::resolver::query(host, port));

	// Try each available endpoint.
	boost::system::error_code ec;
	for (; iter != boost::asio::ip::tcp::resolver::iterator(); ++iter) {
		std::cout &lt;&lt; &quot;Current endpoint - Address:&quot; &lt;&lt; iter-&gt;endpoint().address().to_string() &lt;&lt;
			&quot; Port: &quot; &lt;&lt; iter-&gt;endpoint().port() &lt;&lt; std::endl;
		socket.connect(*iter, ec);
		if (!ec) {
			return;
		}
	}

	// Could not connect to any endpoint.
	throw boost::system::system_error(ec, &quot;connect&quot;);
}
</code></pre>
<p>Beim Versuch, den Code gegen localhost:12345 auszuführen, fliegt folgende Exception:</p>
<blockquote>
<p>connect: Bei dem Versuch das Zeigerargument eines Aufrufs zu<br />
verwenden, wurde eine ungültige Zeigeradresse gefunden</p>
</blockquote>
<p>Ich habe bis in die Socket-Opts hineindebuggt:</p>
<pre><code>void sync_connect(socket_type s, const socket_addr_type* addr,
    std::size_t addrlen, boost::system::error_code&amp; ec)
{
...
}
</code></pre>
<p>Hier ist addr (was eine sockaddr* ist) 0xCCCCCCCCCCCCCCCC, also wohl uninitialisierter Speicher. Wie passiert das?</p>
<p>Ich vermute einen dummen Fehler, den ich einfach übersehe.<br />
Jemand eine Idee?<br />
Danke &amp; schöne Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503456</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 25 Jul 2016 17:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Asio: Exception bei connect on Mon, 25 Jul 2016 17:55:12 GMT]]></title><description><![CDATA[<p>Ist zwar keine echte Antwort, aber 0xCCCC… ist eine Debug-Hilfe vom Microsoft-Compiler.</p>
<pre><code>0xFDFDFDFD	No man's land (normally outside of a process)
0xDDDDDDDD	Freed memory
0xCDCDCDCD	Uninitialized (global)
0xCCCCCCCC	Uninitialized locals (on the stack)
</code></pre>
<p>Aus <a href="https://msdn.microsoft.com/en-us/library/aa260966(v=vs.60).aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/aa260966(v=vs.60).aspx</a><br />
Das grenzt Deine Suche ein wenig ein, ja, es ist wie Du vermutest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503457</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 25 Jul 2016 17:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Asio: Exception bei connect on Mon, 25 Jul 2016 18:14:35 GMT]]></title><description><![CDATA[<p>Davon ging ich auch aus. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Habe jetzt zufälligerweise die freie connect Funktion gefunden, Problem gelöst:</p>
<pre><code>void net::TcpClientMessageSocket::connect(char const* host, char const* port) {
	boost::asio::ip::tcp::resolver resolver(ioPool-&gt;getIoService());
	boost::asio::ip::tcp::resolver::query query(host, port);

	// Try each available endpoint.
	boost::asio::connect(socket, resolver.resolve(query));
}
</code></pre>
<p>Auflösung, was war meine Dummheit? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503460</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 25 Jul 2016 18:14:35 GMT</pubDate></item></channel></rss>