<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>奋斗 &#187; 网络</title>
	<atom:link href="http://fangfangtu.com/blog/tag/%e7%bd%91%e7%bb%9c/feed/" rel="self" type="application/rss+xml" />
	<link>http://fangfangtu.com/blog</link>
	<description>生命在于折腾</description>
	<lastBuildDate>Fri, 23 Jul 2010 13:45:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>boost::asio::async_read 的一些记录</title>
		<link>http://fangfangtu.com/blog/2009/12/async_read-memo/</link>
		<comments>http://fangfangtu.com/blog/2009/12/async_read-memo/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 13:12:12 +0000</pubDate>
		<dc:creator>bborn</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[boost]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://fangfangtu.com/blog/?p=795</guid>
		<description><![CDATA[boost中的asio是一个非常好用的网络库 不过可以参考的资料比较少 大部分都是靠阅读自带的几个example来理解 这里记录一下这两天的几个心得 boost::asio::async_read_until(socket_, response_, &#8220;\r\n\r\n&#8221;, boost::bind(&#038;shoutcast::handle_read_headers, this, boost::asio::placeholders::error)); async_read_until, 一直读,直到读到指定的内容.但是了,并不是刚刚读到就停止,一般缓冲区里会有更多的内容, 所以我们需要读出我们需要的,剩下的留下就好 官方是这么说的&#8221;After a successful async_read_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent async_read_until operation to examine.&#8221; boost::asio::async_read(socket_, response_, boost::asio::transfer_at_least(512), boost::bind(&#038;shoutcast::handle_read_content, this, boost::asio::placeholders::error)); async_read 可以选择使用transfer_at_least 这个CompletionCondition async_read 读入的缓冲区可以这样]]></description>
			<content:encoded><![CDATA[<p>boost中的asio是一个非常好用的网络库<br />
不过可以参考的资料比较少<br />
大部分都是靠阅读自带的几个example来理解<br />
这里记录一下这两天的几个心得</p>
<blockquote><p>boost::asio::async_read_until(socket_, response_,  &#8220;\r\n\r\n&#8221;, boost::bind(&#038;shoutcast::handle_read_headers, this, boost::asio::placeholders::error));</p></blockquote>
<p>async_read_until, 一直读,直到读到指定的内容.但是了,并不是刚刚读到就停止,一般缓冲区里会有更多的内容,<br />
所以我们需要读出我们需要的,剩下的留下就好<br />
官方是这么说的&#8221;After a successful async_read_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent async_read_until operation to examine.&#8221;</p>
<blockquote><p>boost::asio::async_read(socket_, response_, boost::asio::transfer_at_least(512), boost::bind(&#038;shoutcast::handle_read_content, this, boost::asio::placeholders::error));</p></blockquote>
<p>async_read 可以选择使用transfer_at_least 这个CompletionCondition<br />
async_read 读入的缓冲区可以这样<br />
boost::array<char, 8192> buffer_;<br />
boost::asio::buffer(buffer_);来构造<br />
也可以直接用字符数组来构造<br />
char _buf[512] = {0};<br />
boost::asio::buffer(_buf, 512);<br />
也可以用流,更像tcp的方式<br />
使用boost::asio::streambuf response_;<br />
它继承自 std::streambuf<br />
一般这样使用<br />
std::istream _stream(&#038;response_);<br />
这里要注意的是 basic_istream::get<br />
如果我们指定get的个数count,那么取出的个数是count-1<br />
msdn是这样说的&#8221;The fourth function extracts up to _Count &#8211; 1 elements and stores them in the array beginning at _Str.&#8221;</p>
<h3  class="related_post_title">可能相关</h3><ul class="related_post"><li>2005-09-08 -- <a href="http://fangfangtu.com/blog/2005/09/net-hust/" title="终于可以上网了">终于可以上网了</a></li><li>2005-08-31 -- <a href="http://fangfangtu.com/blog/2005/08/opera-ten-years/" title="opera 十年">opera 十年</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://fangfangtu.com/blog/2009/12/async_read-memo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>终于可以上网了</title>
		<link>http://fangfangtu.com/blog/2005/09/net-hust/</link>
		<comments>http://fangfangtu.com/blog/2005/09/net-hust/#comments</comments>
		<pubDate>Thu, 08 Sep 2005 22:09:47 +0000</pubDate>
		<dc:creator>bborn</dc:creator>
				<category><![CDATA[diary]]></category>
		<category><![CDATA[hust]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://bborn.6fmusic.com/blog/?p=346</guid>
		<description><![CDATA[昨天申请了账号 但是怎么设置都不行 今天同学打了个电话过去 是网管那边没有搞好 哈哈 中午小试了一下bt 下天下足球有500k左右的速度 网速是要快些阿 可能相关2009-12-30 -- boost::asio::async_read 的一些记录2008-11-29 -- 去年这个时候2008-07-03 -- 毕业了2007-10-26 -- 答辩通过2007-02-10 -- 西门大盘鸡]]></description>
			<content:encoded><![CDATA[<p>昨天申请了账号<br />
但是怎么设置都不行<br />
今天同学打了个电话过去<br />
是网管那边没有搞好<br />
哈哈<br />
中午小试了一下bt<br />
下天下足球有500k左右的速度<br />
网速是要快些阿</p>
<h3  class="related_post_title">可能相关</h3><ul class="related_post"><li>2009-12-30 -- <a href="http://fangfangtu.com/blog/2009/12/async_read-memo/" title="boost::asio::async_read 的一些记录">boost::asio::async_read 的一些记录</a></li><li>2008-11-29 -- <a href="http://fangfangtu.com/blog/2008/11/past-year/" title="去年这个时候">去年这个时候</a></li><li>2008-07-03 -- <a href="http://fangfangtu.com/blog/2008/07/finish-school/" title="毕业了">毕业了</a></li><li>2007-10-26 -- <a href="http://fangfangtu.com/blog/2007/10/pass-rejoin/" title="答辩通过">答辩通过</a></li><li>2007-02-10 -- <a href="http://fangfangtu.com/blog/2007/02/big-dish-chicken/" title="西门大盘鸡">西门大盘鸡</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://fangfangtu.com/blog/2005/09/net-hust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>opera 十年</title>
		<link>http://fangfangtu.com/blog/2005/08/opera-ten-years/</link>
		<comments>http://fangfangtu.com/blog/2005/08/opera-ten-years/#comments</comments>
		<pubDate>Wed, 31 Aug 2005 21:36:26 +0000</pubDate>
		<dc:creator>bborn</dc:creator>
				<category><![CDATA[diary]]></category>
		<category><![CDATA[十年]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://bborn.6fmusic.com/blog/?p=343</guid>
		<description><![CDATA[opera 浏览器现在正在提供免费注册 记得opera 这个单词 我还真的是从这个浏览器学到的 那个时候他号称世界上最快的浏览器 事实我想确实如此 踩着小猫步 都能体验到那种滚动条迅速缩短的感觉 手机上的opera同样不错 移动版的我只用过symbian的 可惜他不提供免费注册[cry] 可能相关2009-12-30 -- boost::asio::async_read 的一些记录2007-07-26 -- 十年如一梦,我恍惚中过2007-07-06 -- 十年在美东时间2007-06-30 -- 十年2005-09-08 -- 终于可以上网了]]></description>
			<content:encoded><![CDATA[<p><img src="http://bborn.cn/image/readimg.php?src=http%3A%2F%2Flh6.gouride.com%2Fbborn.pisces%2FSDbeal1B8nI%2FAAAAAAAABPU%2FfIyxeu4NAV0%2Fs400%2Ff2005831213125.jpg" border="0" alt="" /><br />
opera 浏览器现在正在提供免费注册</p>
<p>记得opera 这个单词<br />
我还真的是从这个浏览器学到的<br />
那个时候他号称世界上最快的浏览器<br />
事实我想确实如此<br />
踩着小猫步<br />
都能体验到那种滚动条迅速缩短的感觉</p>
<p>手机上的opera同样不错<br />
移动版的我只用过symbian的<br />
可惜他不提供免费注册[cry]</p>
<h3  class="related_post_title">可能相关</h3><ul class="related_post"><li>2009-12-30 -- <a href="http://fangfangtu.com/blog/2009/12/async_read-memo/" title="boost::asio::async_read 的一些记录">boost::asio::async_read 的一些记录</a></li><li>2007-07-26 -- <a href="http://fangfangtu.com/blog/2007/07/ten-years-dream/" title="十年如一梦,我恍惚中过">十年如一梦,我恍惚中过</a></li><li>2007-07-06 -- <a href="http://fangfangtu.com/blog/2007/07/ten-years-us/" title="十年在美东时间">十年在美东时间</a></li><li>2007-06-30 -- <a href="http://fangfangtu.com/blog/2007/06/ten-years/" title="十年">十年</a></li><li>2005-09-08 -- <a href="http://fangfangtu.com/blog/2005/09/net-hust/" title="终于可以上网了">终于可以上网了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://fangfangtu.com/blog/2005/08/opera-ten-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
