转到正文

奋斗

生命在于折腾

年会抽奖得了个ipod shuffle
没想到我的第一个apple是这样的
没有抽到最后的1k的现金奖
心里很毛躁
本来想如果抽到我
明天就下定决心去买个imac回来的
看来天不遂我意啊

日食

15

下午 拉开窗帘 在太阳下山的那一刻
用手机拍下了这次日食
没有想到这么容易就能看到这个天文奇观

boost中的asio是一个非常好用的网络库
不过可以参考的资料比较少
大部分都是靠阅读自带的几个example来理解
这里记录一下这两天的几个心得

boost::asio::async_read_until(socket_, response_, “\r\n\r\n”, boost::bind(&shoutcast::handle_read_headers, this, boost::asio::placeholders::error));

async_read_until, 一直读,直到读到指定的内容.但是了,并不是刚刚读到就停止,一般缓冲区里会有更多的内容,
所以我们需要读出我们需要的,剩下的留下就好
官方是这么说的”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.”

boost::asio::async_read(socket_, response_, boost::asio::transfer_at_least(512), boost::bind(&shoutcast::handle_read_content, this, boost::asio::placeholders::error));

async_read 可以选择使用transfer_at_least 这个CompletionCondition
async_read 读入的缓冲区可以这样
boost::array buffer_;
boost::asio::buffer(buffer_);来构造
也可以直接用字符数组来构造
char _buf[512] = {0};
boost::asio::buffer(_buf, 512);
也可以用流,更像tcp的方式
使用boost::asio::streambuf response_;
它继承自 std::streambuf
一般这样使用
std::istream _stream(&response_);
这里要注意的是 basic_istream::get
如果我们指定get的个数count,那么取出的个数是count-1
msdn是这样说的”The fourth function extracts up to _Count – 1 elements and stores them in the array beginning at _Str.”

这又是一个奇迹的夜晚
临近比赛结束的时候年轻的小将扳平比分
让人忘掉了前面整场的沉闷
为什么每次都要玩的这么悬
想起了06年看巴萨的欧冠决赛

这是搬家后第一次在电视上看比赛
很爽

因为不能说的秘密
btchina等下载网站全部over了
真是个bt的china
本来想买个带bt下载的播放器
可以在白天下载一些电影的
否则真对不起这么贵的网费
结果还没买 这些可爱的站点就没了

种种的限制越来越多
现在已经不允许个人注册域名
这是个朝令夕改的政府

在06年我还问过yasker
干嘛去注册一个org的域名
他说:安全
是的 真有远见

未雨绸缪 我还去godaddy注册了一个域名
fangfangtu.com
你们知道是什么意思 好记
通过paypal里的一点点余额付的款
很有意思 今天看到新闻
godaddy刚刚支持支付宝支付
在这个敏感的时候
支付宝挺身而出
真是”路见不平一声吼,该出手时就出手”

以后 就用这个域名了
this is it! fangfangtu.com
咳 虽然比较土 就这么着吧
等有了更好的想法再说吧

总体来说 还是比较满意的
说点缺点,
电池撑不到两天,还是电话比较少的情况
有些时候程序也会无法响应
看来定时重启也是必要的

昨晚边听歌边上网 感觉还是蛮不错的
“七月份的尾巴 你是狮子座
八月份的前奏 你是狮子座 “

Pages: 1 2 3 4 5 6 7 8 ...68 69 70 Next