<?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 Verständnisproblem]]></title><description><![CDATA[<p>Warum funktioniert dieses Programm:</p>
<pre><code>int main()
{
	for(;;)
	{
		switch(getch())
		{
		case 's': // der server
			try
			{
				boost::asio::io_service io_service;

				tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 8357));

				for(;;)
				{
					tcp::socket socket(io_service);
					acceptor.accept(socket);

					std::string message = &quot;vom server&quot;;

					boost::system::error_code ignored_error;
					boost::asio::write(socket, boost::asio::buffer(message), ignored_error);
				}
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case 'c': // der client
			try
			{
				boost::asio::io_service io_service;

				tcp::resolver resolver(io_service);
				tcp::resolver::query query(&quot;127.0.0.1&quot;, &quot;8357&quot;);
				tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);

				tcp::socket socket(io_service);
				boost::asio::connect(socket, endpoint_iterator);

				boost::asio::streambuf buf;
				boost::system::error_code error;

				size_t len = boost::asio::read(socket, buf, error);

				if(error == boost::asio::error::eof)
				{
					cout &lt;&lt; boost::asio::buffer_cast&lt;const char *&gt;(buf.data()), buf.size();
				}
				else if(error)
				{
					throw boost::system::system_error(error);
				}
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case VK_ESCAPE:
			return 0;
		}
	}

	getch();
	return 0;
}
</code></pre>
<p>Aber das hier nicht:</p>
<pre><code>int main()
{
	for(;;)
	{
		switch(getch())
		{
		case 's': // der server
			try
			{
				boost::asio::io_service io_service;

				tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 8357));

				for(;;)
				{
					tcp::socket socket(io_service);
					acceptor.accept(socket);

					std::string message = &quot;vom server&quot;;

					boost::system::error_code ignored_error;
					boost::asio::write(socket, boost::asio::buffer(message), ignored_error);

					// neuer Teil
					boost::asio::streambuf buf;
					boost::system::error_code error;

					// hier hängt es
					size_t len = boost::asio::read(socket, buf, error);

					if(error == boost::asio::error::eof)
					{
						cout &lt;&lt; boost::asio::buffer_cast&lt;const char *&gt;(buf.data()), buf.size();
					}
					else if(error)
					{
						throw boost::system::system_error(error);
					}
				}
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case 'c': // der client
			try
			{
				boost::asio::io_service io_service;

				tcp::resolver resolver(io_service);
				tcp::resolver::query query(&quot;127.0.0.1&quot;, &quot;8357&quot;);
				tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);

				tcp::socket socket(io_service);
				boost::asio::connect(socket, endpoint_iterator);

				boost::asio::streambuf buf;
				boost::system::error_code error;

				// hier hängt es jetzt auch
				size_t len = boost::asio::read(socket, buf, error);

				if(error == boost::asio::error::eof)
				{
					cout &lt;&lt; boost::asio::buffer_cast&lt;const char *&gt;(buf.data()), buf.size();
				}
				else if(error)
				{
					throw boost::system::system_error(error);
				}

				// neuer Teil
				std::string message = &quot;vom client&quot;;

				boost::system::error_code ignored_error;
				boost::asio::write(socket, boost::asio::buffer(message), ignored_error);
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case VK_ESCAPE:
			return 0;
		}
	}

	getch();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/310884/boost-asio-verständnisproblem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 05:35:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310884.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Nov 2012 21:26:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::asio Verständnisproblem on Wed, 21 Nov 2012 21:26:12 GMT]]></title><description><![CDATA[<p>Warum funktioniert dieses Programm:</p>
<pre><code>int main()
{
	for(;;)
	{
		switch(getch())
		{
		case 's': // der server
			try
			{
				boost::asio::io_service io_service;

				tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 8357));

				for(;;)
				{
					tcp::socket socket(io_service);
					acceptor.accept(socket);

					std::string message = &quot;vom server&quot;;

					boost::system::error_code ignored_error;
					boost::asio::write(socket, boost::asio::buffer(message), ignored_error);
				}
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case 'c': // der client
			try
			{
				boost::asio::io_service io_service;

				tcp::resolver resolver(io_service);
				tcp::resolver::query query(&quot;127.0.0.1&quot;, &quot;8357&quot;);
				tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);

				tcp::socket socket(io_service);
				boost::asio::connect(socket, endpoint_iterator);

				boost::asio::streambuf buf;
				boost::system::error_code error;

				size_t len = boost::asio::read(socket, buf, error);

				if(error == boost::asio::error::eof)
				{
					cout &lt;&lt; boost::asio::buffer_cast&lt;const char *&gt;(buf.data()), buf.size();
				}
				else if(error)
				{
					throw boost::system::system_error(error);
				}
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case VK_ESCAPE:
			return 0;
		}
	}

	getch();
	return 0;
}
</code></pre>
<p>Aber das hier nicht:</p>
<pre><code>int main()
{
	for(;;)
	{
		switch(getch())
		{
		case 's': // der server
			try
			{
				boost::asio::io_service io_service;

				tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 8357));

				for(;;)
				{
					tcp::socket socket(io_service);
					acceptor.accept(socket);

					std::string message = &quot;vom server&quot;;

					boost::system::error_code ignored_error;
					boost::asio::write(socket, boost::asio::buffer(message), ignored_error);

					// neuer Teil
					boost::asio::streambuf buf;
					boost::system::error_code error;

					// hier hängt es
					size_t len = boost::asio::read(socket, buf, error);

					if(error == boost::asio::error::eof)
					{
						cout &lt;&lt; boost::asio::buffer_cast&lt;const char *&gt;(buf.data()), buf.size();
					}
					else if(error)
					{
						throw boost::system::system_error(error);
					}
				}
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case 'c': // der client
			try
			{
				boost::asio::io_service io_service;

				tcp::resolver resolver(io_service);
				tcp::resolver::query query(&quot;127.0.0.1&quot;, &quot;8357&quot;);
				tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);

				tcp::socket socket(io_service);
				boost::asio::connect(socket, endpoint_iterator);

				boost::asio::streambuf buf;
				boost::system::error_code error;

				// hier hängt es jetzt auch
				size_t len = boost::asio::read(socket, buf, error);

				if(error == boost::asio::error::eof)
				{
					cout &lt;&lt; boost::asio::buffer_cast&lt;const char *&gt;(buf.data()), buf.size();
				}
				else if(error)
				{
					throw boost::system::system_error(error);
				}

				// neuer Teil
				std::string message = &quot;vom client&quot;;

				boost::system::error_code ignored_error;
				boost::asio::write(socket, boost::asio::buffer(message), ignored_error);
			}
			catch(std::exception&amp; e)
			{
				std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
			}
			return 0;
		case VK_ESCAPE:
			return 0;
		}
	}

	getch();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273220</guid><dc:creator><![CDATA[boostasio]]></dc:creator><pubDate>Wed, 21 Nov 2012 21:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to boost::asio Verständnisproblem on Wed, 21 Nov 2012 22:10:51 GMT]]></title><description><![CDATA[<p>Wegen der Unterschiede zwischen beiden Programmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273229</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 21 Nov 2012 22:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to boost::asio Verständnisproblem on Thu, 22 Nov 2012 15:14:45 GMT]]></title><description><![CDATA[<p>Aber warum hängt das 2. Programm?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273457</guid><dc:creator><![CDATA[boostasio]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to boost::asio Verständnisproblem on Thu, 22 Nov 2012 16:27:11 GMT]]></title><description><![CDATA[<p>Weil die Unterschiede gegenüber dem ersten Programm zu einem Fehlverhalten führen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273486</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 Nov 2012 16:27:11 GMT</pubDate></item><item><title><![CDATA[Reply to boost::asio Verständnisproblem on Thu, 22 Nov 2012 16:30:16 GMT]]></title><description><![CDATA[<p>Wieso?<br />
Ich möchte doch nur, dass der client auch etwas sendet und der server die Daten empfängt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273488</guid><dc:creator><![CDATA[boostasio]]></dc:creator><pubDate>Thu, 22 Nov 2012 16:30:16 GMT</pubDate></item><item><title><![CDATA[Reply to boost::asio Verständnisproblem on Thu, 22 Nov 2012 17:28:12 GMT]]></title><description><![CDATA[<p>Er hängt weil der Server den Socket nicht zu macht, der Client aber drauf wartet.<br />
<a href="http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/reference/read/overload6.html" rel="nofollow">http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/reference/read/overload6.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273513</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 22 Nov 2012 17:28:12 GMT</pubDate></item></channel></rss>