自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bbisonic的专栏

----专注于P2P流媒体技术的研究

  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 《C++程序设计语言》的魅力

舍友那里一本《C++程序设计语言》在那里躺了好久。我一日突然间想拿来翻翻,没想到一发不可收拾。对于C++语言的每个特性,作者不仅给出了如何用,还说明了设计这个特性的理由,以及在什么情况下如何安全地使用这个特性,真是畅快淋漓。翻着翻着,顿感自己的C++语言功力仍是如此粗浅,好多概念根本是一知半解,真乃羞愧羞愧。幸而遇此书,使我不致感觉太良好。一些很长时间不甚了了的问题在此都一一得到解决,

2006-04-29 20:43:00 1630 4

原创 中国人的创新

今天看世乒赛的时候,评论员说了句让我激动万分的事儿。她说:世界乒乓球技术的创新80%来自中国。我的天啊,我终于发现中国终于有个创新远领先于世界其他国家的领域了。特别是相对美国而言,那可真是扬眉吐气啊! “浮燥”是很可怕的两个字儿。因为落后,所以就想赶紧赶上别人。正因为想加快时间赶上,例如赶英超美什么的,就把基础什么的全给丢了,什么东西快出成绩就追什么东西。结果是导致越来越落后,

2006-04-28 13:43:00 1076

原创 矛盾着

Dracular说他光盘借出去后就再也没有人还回来过,我深深表示同情。可是他还是义无反顾地借了,而且今天借给了IP上的一个陌生人。我和他说这次这个陌生人一定会把盘还给你。可是这个世界到底怎么回事了呢?陌生人要比熟人来得讲诚信得多。其实是这样的,因为他不认识你,所以你给了他恩惠,他自然没有理由恩将仇报。而熟人呢,唉呀大家都那么熟了,忘了就忘了,他就认为没有人会在意。所以啊,与其找熟人

2006-04-28 13:05:00 932 1

原创 Peercast中“流”概念的分析

流在Peercast中是一个很重要的概念。凡是数据从一个地方传输到另一个地方的操作都是流的操作,所以就网络交换数据而言,例如包的发送和接收,都可视为流操作。Peercast中用Stream类来提供一个界面。其继承类有FileStream和ClientSocket。Stream类提供读取和写入各种不同类型数据(ID4类型、字符型、整型、字符串)的操作,例如    long readLong() 

2006-04-25 21:25:00 1472 2

原创 Peercast中用到的几种数据结构

链表:Channel类、ChannelHit类均用到了链表数据结构以Channel类为例class Channel{   Channel* next;}ChanMgr维护一份Channel的链表,并完成添加、删除、统计等操作。这里用链表而不用数组是考虑到频道频繁的添加删除操作和空间的节省。其中channel为头指针,添加新频道采用头插法,统计频道数目采用遍历的方法。class

2006-04-24 15:18:00 1460 8

原创 修剪草坪

猛然间发现博客已经三天没有更新了,唉呀呀,这怎么得了!所以说最近好象有些懒,也难怪嘛,据说前天是周六,昨天是周日的,别告诉我不是? 最近打台球打得不亦乐乎,嗯,这东西还真是蛮好玩的。不过老天似乎跟我过不去,因为每次去打台球都不是那么顺利。我们打台球的地方在珠江绿洲后面,要经过一个桥还要走那么一小段路,哈哈,珠江绿洲就是所谓的“水钢琴”了,可惜通惠河就是不争气呀,看起来像小水沟般

2006-04-24 12:58:00 1323 3

原创 大四那年的图书馆

最近技术文章突然间又少了。大家别着急呵,整理思路中。。。请继续关注《Peercast整体架构分析》这篇文章,近段时间的研究会体现在这篇文章中。 今天去书店,可真是冷清啊。一进去,除了我和Dracular之外,也就只有店员了。那家伙看书明显不专心,两秒钟就抬头望一下我们。我说你何必呀,好歹我们也是大学生啊,也犯不着干什么偷你书之类的事吧。看起来我和你也没啥仇啊,是不是你和我还是高中同学呢

2006-04-21 23:39:00 1349

原创 A little little surprise

Intel的副总裁真是能开玩笑,他问底下的听众:Ill invite two of you to help me, and Ill give you a little little surprise。他说这句话的时候,有1/8人在睡觉,有1/4人没有听懂,有1/4人还在犹豫。一分钟过去后,终于有两个人上去了。很简单的帮忙。后来,这份a little little surpris

2006-04-19 15:51:00 1438 1

原创 Peercast整体架构分析

现在的P2P流媒体主要有两种架构:1.基于树的架构。这是由流媒体的多播演化而来的,也就是播放同一频道的节点组成一棵树,提供广播的源节点为这棵树的根。每个节点可以为下层几个节点提供数据。但这种架构仍然会对上层的结点造成太大的负担,而且在节点动态加入和退出的情况下树不易维护。另外还存在传输延迟问题,所以树的高度不能太大。2.基于图(MESH)的架构。通过邻居发现寻找相关的节点。这种架构可以实现

2006-04-18 16:40:00 6319 11

原创 泛黄的天空

沙尘暴终究躲不过,泛黄的天空和建筑物、地上看得见的黄沙都标志着她的到来。但我还是可以想办法躲开她,所以我今天没有出去。当然,这只是我的一个借口。就像别人说的那样,只要我不想出去,我的借口可以有很多。比如说,我说因为我在电脑前突然动不了了。这成为他们的一个笑料,很好,大家笑得很开心。事实上,我之所以动不了,是因为我突然间不想动,是因为我觉得我懒得出去,我觉得我没有出去的必要。所以说,

2006-04-17 16:28:00 1179 1

原创 未来15天的工作计划

1.Peercast整体架构分析(敬请期待)2.WIN32多线程编程的掌握3.自由软件开发的相关知识4.SVN版本控制的使用

2006-04-16 14:14:00 1054 1

转载 自由软件发布方法惯例

Eric Steven Raymond Thyrsus Enterprises [email protected] 陶 品 [email protected] 梁 昌泰 [email protected] Copyright ? 2000 by Eric S. Raymond Abstract 本文档详细说明了如何发布一个Linux系统下的自由软件项目。依据这些说明,您就可以让用户非常容易

2006-04-16 14:11:00 1939

转载 必须掌握的8个DOS网络命令

一,ping   它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧

2006-04-14 14:30:00 1544

原创 叶子

风清扬说一定要把他复仇的比分写上,前两天没空就忘了写,唉,也就4:11么,输是正常的,赢就不正常了么。做人不要太计较,哈哈,开玩笑的。《冲上云霄》看到第20集了,这个Donald还这么不急不燥的,唉,急死人啦。缘份这种东西,向来是,信也好,不信也好,只是一种生活态度,谁都有自己的选择。然后就呆在图书馆。唉,这个地方上学期泡了四个月还真舍不得了哩,每天没事都还要瞎去逛逛。虽然坐在那也是聊天,

2006-04-14 12:07:00 1123

转载 QQ与MSN之龟兔赛跑

QQ与MSN之龟兔赛跑 (2006-02-08 16:21:31)

2006-04-12 21:15:00 2444 2

原创 Peercast收听电台的源代码流程分析

以收听JOKV-FM(TEST)为例,在YP上点击Play,则其URL地址为peercast://pls/25838B9F1EAE27079B793C9FBA0E4156?tip=222.148.187.176:7144case WM_COPYDATA:   {    COPYDATASTRUCT *pc = (COPYDATASTRUCT *)lParam;    LOG_DEBUG("UR

2006-04-12 19:19:00 4434 24

转载 VC调试入门

概述调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。  设置为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建

2006-04-12 17:10:00 1116

原创 用Peercast广播视频文件(WMV格式)

1.安装Windows media encoder2.新建会话中选择自定义会话3.源来自选择文件,在文件名中点击浏览选择要广播的视频(WMV)4.在输出中选择自编码器拉传递,端口号填80805.点击应用6.在Peercast的Broadcast页面中URL填入http://localhost:8080,其他项根据你的选择设置,然后点击Create Relay7.在WIndo

2006-04-12 16:40:00 3512 12

原创 Peercast各个版本的更新记录

v0.102New release: Fixed: A problem where channels could connect back to themselves and endlessly stream in a loop. Fixed: Initial auto-Find retry problem. Sometimes it would just give up and yo

2006-04-12 16:30:00 5984 2

原创 关于Peercast注释的声明

由于Peercast注释的工作还在进行中,预计五月份注释完毕。所以希望得到Peercast源代码注释版的朋友请耐心等到五月份的发布。另外,由于源代码量庞大,所以注释工作量也挺大。所以我希望以一种开源的方式,大家一起参与进来注释代码。每个人注释一到几个文件,这样我们可以更好地为后来的朋友们服务。有兴趣参与注释代码的朋友请在我的博客上留言。或者联系我。邮箱:[email protected]

2006-04-11 12:24:00 1640 13

转载 开源软件开放不仅是代码

开源的世界是开放的。订阅用户邮件列表,或者通过其他的渠道,你很容易了解到其他人在对这个软件做的工作哪些功能是好的,哪些功能还需要改进。阅读项目计划图或者供公开访问的bug列表能够帮助你了解这个项目发展的方向,谁在推动它,以及项目的团队组织是否良好。你还 能够了解其中人的个性以及社交的状况。当你阅读这些记录的时候,要注意哪些问题还没有得到解答,而哪些问题已经被解答了。有几个活跃的人物在为这些问题

2006-04-10 22:58:00 1136

原创 我的稻草本儿

今天和风清扬去打台球。战果如下我进了5次黑8,风清扬进了7次黑8,结果我以8:4取胜。这一度另他很郁闷。我劝他没关系,要是你不郁闷就是我郁闷了。你看,总是有一个人郁闷,所以谁都不亏。事实证明后来我亏了。因为晚上和风清扬去打乒乓球,我一局也没赢下来。看来他斗志高涨而我毫无脾气,到后来我只能这样说:这球要是不下网就上了。这另我想起了韩老师的经典名言:这球,要是不踢偏的话。。。那就进了!是啊,真是可

2006-04-10 09:52:00 923 5

原创 特此声明

最近技术文章似乎少了些。因为这几天是周末,所以似乎比较懒。其实按说我已经没有周末的概念了,但还是想偷个懒儿。人都有惰性,这点咱就不否认了。最近觉得文章有点乱,主要是有些技术性文章和非技术性文章混在一起了。关心P2P流媒体的朋友,请在左边的文章类别中选择你感兴趣的内容。包括P2P相关知识和基于P2P的流媒体研究。关心Peercast的朋友,请在左边的文章内容中选择Peercast和Gnu

2006-04-08 23:44:00 1110 8

原创 大学究竟给我们带来了什么

现在独立思考的人越来越少了,报纸和网站上已经有太多现成的观点,所以大家都习惯于附和。为什么?因为思考是件太累的事情,想想还要上课、还要考试、还要考四六级,脑细胞都消耗不知多少了,还有闲心自己去想一些事情?所以啊,有人说了李开复是精神教父,大家就说是啊是啊,他的话真是句句是真金啊。所以啊,后来有人说李开复误导了中国那么多的大学生,大家也说是啊是啊,他的话真是害人不浅啊。所以啊,大

2006-04-08 23:15:00 2259

原创 我们一直在错怪好人

一直在错怪。一直在误会。其实很多事情只要沟通几句就可以说清楚的,可是总是没人开口。于是就这么惯性下去。越走越远,就算刹住车了,也再回不来了。所以,这个世界上的好人不是太少,而是,你所以为的好人太少。 

2006-04-08 15:36:00 1755 3

转载 不同局域网内经Internet的P2P通信技术总结

不同局域网内经Internet的P2P通信技术总结   作者: jmcooler整理 | 日期: 2004-07-31 | 已阅: 8936次 以下将要用到一个叫做NAT的重要名词,先做点解释。NAT是

2006-04-08 14:23:00 5605 2

转载 The Annotated Gnutella Protocol Specification v0.4

The Annotated Gnutella Protocol Specification v0.4 (1) Document Revision 1.6 Clip2 Status: Annotated Standard

2006-04-08 14:13:00 2269 3

原创 步步为营---如何加入Gnutella网络

在Gnutella协议的早期阶段,有一些未知的永久主机用来为任何连接到他们的Gnutella servent提供一份Gnutella主机的列表。通常把这些主机称为“主机池”。但是现在已经不再使用主机池了。要连接到Gnutella网络,servent需要寻找和存储主机的地址。取得主机的地址有四种方法。1.呼叫一个GWebCache2.在handshake时从X-Try and X-Try-Ult

2006-04-08 10:24:00 2294 2

原创 推荐是件费力不讨好的事儿

    人见了好东西不免喜欢与他人分享,我自然也不能免俗。人推荐出去的东西往往都希望能得到别人的肯定,我自然也是如此。    可惜结果不总如所愿。他们或许只是客套般地与你说道不错不错,或许就说一句,唉呀你啊,怎么这么没眼光啊。这一度另我很是郁闷。    还好后来想通了,人是主观的。你喜欢的未必他人就喜欢,别人喜欢的未必你就喜欢,何必强求。但找到一个对某件事情有着共同看法的人毕竟是件另人很愉快的事儿

2006-04-07 22:33:00 1179 4

翻译 Gnutella的文件传输机制

一旦一个servent收到一个QueryHit消息,它可能会建立由这个消息的结果集描述的文件集中一个文件的下载。文件是在网络外部下载的,例如建立一个源和目标的直接连接以实现文件传输。文件数据从来不会在Gnutella网络上传输。文件下载协议是HTTP。建议使用HTTP1.1(RFC2616),但是HTTP1.0(RFC1945)也可以使用。完整而详细的定义在RFC中。下面只包括最基本的

2006-04-07 21:52:00 2284

原创 弯路还是要走的---回归C/C++和SDK

还没上学的时候,说要当科学家,发明很多很多的专利,赚很多很多的钱。很久以后,觉得这是不现实的事情,于是放弃。小学六年级的时候,喜欢上计算机。高三的时候,跟同学说以后要去中关村工作。高考填志愿当时,为了去上海的一个名牌大学竟然放弃了自己的志向。可惜好象上天还是要我学计算机似的,于是去了一个文科学校的计算机专业。第一个弯路。 还好上学的时候碰到一个强人,当时我什么都不懂

2006-04-06 21:00:00 1230

原创 Peercast的日志实现

这里以输出DEBUG信息为例子。输出日志函数为LOG_DEBUG。具体使用方法为LOG_DEBUG("Play request: %s",pc->lpData);void LOG_DEBUG(const char *fmt,...){ if (servMgr) {  if ((servMgr->showLog & (1pauseLog))  {   va_list ap;     va_s

2006-04-06 18:50:00 2574 8

转载 方兴东:如何写好个人博客?

方兴东:如何写好个人博客?经常有认识不认识的朋友问我,究竟如何才能写好博客?为什么博客一阵就没劲了?做一个优秀的博客究竟有什么诀窍?越回答发现这个问题越难。因为博客是一个人在网络上的延伸。因此,理论上讲,有多少个人就有多少种博客。如何才能成为一个优秀博客,与如何成为一个优秀的人一样复杂。如何让一个人的博客更加优秀,更加来劲,不同的人可能是很不一样的。当然,基本的规律有一些,不过,我

2006-04-06 17:59:00 2040

原创 整理屋子的意外收获

    昨天学习状态挺不好的。找不到原因。于是去闲逛。    今天想到原因了,屋子太乱。乱糟糟地心情就不太好。    于是花了一天的时间把屋子收拾得干干净净,果然就愉快多了。    还有些意外收获。     小事情也出大道理。比如就收拾屋子这件事情就让我想到了这么些道理。呵呵,最近想法太多了点。    做一件事情要成功其实只需要三点。    第一点:有目标。    

2006-04-06 17:06:00 2044 3

原创 Sys.h源代码分析

String类:完成字符串的一些定义和操作Random类:可调用next方法返回随机数Sys类:提供一些系统功能,如线程操作、返回随机数、返回时WEvent类:WLock类:对临界区操作的封装,用于线程同步ThreadInfo类:线程信息

2006-04-06 16:07:00 5341

原创 WinSock I/O方法的非阻塞模式

2006-04-06 15:26:00 1355

原创 我已经出离愤怒了!!!

中国最出名的程序员网站的博客系统竟然成天出问题。我已经出离愤怒了!!!如下:CSDN Blog正在进行维护,预计一小时内完成。如果您要撰写Blog文章,请直接登录后台。Blog系统的前后端是分开的,不会互相影响。 如果您是读者,请耐心稍候,然后回到前页。 在等候的同时,您还可以访问CSDN其他模块: 首页 新闻 论坛 .NE

2006-04-06 15:08:00 1029 2

原创 Peercast的命令行使用方式

Peercast也可以从命令行启动,有如下几种参数选择Peercast:正常方式启动Peercast -inifile:启动,并设置配置文件参数Peercast -kill:启动后立即关闭Peercast -url:按照频道的URL地址启动Peercast并播放相应电台Peercast -multi:以非互斥方式启动具体实现如下:int APIENTRY WinMain

2006-04-06 14:25:00 2375

原创 wsocket.h源文件分析

WSAClientSocket继承自ClientSocket,完成对基本WinSock函数的封装。ClientSocket只是提供一个接口,具体实现由其继承类WSAClientSocket(WINDOWS)和UClientSocket (UNIX)实现这里先介绍一下Host类:unsigned int ip; //主机IPunsigned short port; //主机端口号 u

2006-04-06 13:00:00 3278

原创 CGI的基本编程要素

CGI的工作流程:    服务器根据客户端发送的请求方法(GET/POST/HEAD),将信息发送给CGI脚本。CGI脚本进行信息处理并将结果返回给服务器。服务器再对返回结果进行分析,然后发送给客户端。CGI脚本的解析流程:1.判断方法类型,根据不同类型做相应处理(GET/POST/HEAD)2.若方法为GET,则只需往页面中写入相应的HTML代码3.若方法为POST,先分析P

2006-04-05 22:51:00 1316 1

Peercast(王浩聪注释版)

Peercast注释版是我在做本科毕业设计时分析Peercast的一些成果,当时阅读代码的时候做了注释,然后写了一些分析文章。本来想发到自己的博客上保留一份记录的,不想后来竟成了很多人参考Peercast的资料。这点上我是有些惭愧的,因为很多不成熟的想法和不正确的观点可能会误导大家,也希望大家能够分辨吧。本来想形成一份比较完整的注释版,但后来由于毕业以及转变研究方向等因素已经没有继续做下去了。不过核心的代码我想应该还是比较清晰的,大家可以参考一下。我把Peercast注释版发到CSDN的资源上,大家可以访问http://download.csdn.net/hicsdn/bbisonic进行下载,以后我就不回复索要代码的留言和邮件了。也是很抱歉,有半年的时间没更新过此BLOG了,对于有些我没注意到留言或邮件而漏发代码的朋友们,在此说声SORRY了。<br><br>大家在看代码前最好先看看Peercast源码分析文章,里面的<源码编译方法>可以告诉你如何编译Peercast源代码。<看源代码前必读>可以告诉你项目的组织结构以及各源码目录各自完成什么功能,可以让你对整体有个大概的了解。<Peercast整体架构分析>让你能大致了解一下Peercast的架构及设计思想。<阅读Peercast源码的一些经验>是我阅读Peercast源码的一些体会,希望对你能有所帮助。<Peercast服务器端代码执行流程>解释服务器启动的一些关键代码,<Peercast播放模块分析>解释Peercast如何调用播放器实现媒体播放的。以上是一些比较重要的文章,其他文章可以有选择性地看看。其他的话就看源码注释吧。<br><br>这份源码注释有很多不足之处,是我学习过程中的一个成果,大家请见谅。如果它能给你阅读 Peercast的过程中带来一些帮助的话,我将感到非常荣幸。<br>特此声明。<br><br>王浩聪<br>2007.12.11<br>

2008-01-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除