关于Peercast注释版的最后声明

基于P2P的流媒体开源系统介绍----peercast,myseelite,p2pcenter     现在有很多人架设视频网站,要缓解视频网站服务器带宽的压力,最好的办法是使用p2p的方式。从头写一个p2p系统,要花费太多功夫,不如直接用开源的。本文介绍3款开源的p2p点播/直播系统。只是简单介绍,并给出一些有用信息,并不做源码分析。    1.peercast    这是比较古老的一个直播系统,性能上有不少缺陷,现在应该只有学习价值,没有应用价值了。下载地址:http://dow 阅读详情

Peercast注释版是我在做本科毕业设计时分析Peercast的一些成果,当时阅读代码的时候做了注释,然后写了一些分析文章。本来想发到自己的博客上保留一份记录的,不想后来竟成了很多人参考Peercast的资料。这点上我是有些惭愧的,因为很多不成熟的想法和不正确的观点可能会误导大家,也希望大家能够分辨吧。本来想形成一份比较完整的注释版,但后来由于毕业以及转变研究方向等因素已经没有继续做下去了。不过核心的代码我想应该还是比较清晰的,大家可以参考一下。我把Peercast注释版发到优快云的资源上,大家可以访问http://download.youkuaiyun.com/hicsdn/bbisonic进行下载,以后我就不回复索要代码的留言和邮件了。也是很抱歉,有半年的时间没更新过此BLOG了,对于有些我没注意到留言或邮件而漏发代码的朋友们,在此说声SORRY了。

大家在看代码前最好先看看Peercast源码分析文章,里面的<源码编译方法>可以告诉你如何编译Peercast源代码。<看源代码前必读>可以告诉你项目的组织结构以及各源码目录各自完成什么功能,可以让你对整体有个大概的了解。<Peercast整体架构分析>让你能大致了解一下Peercast的架构及设计思想。<阅读Peercast源码的一些经验>是我阅读Peercast源码的一些体会,希望对你能有所帮助。<Peercast服务器端代码执行流程>解释服务器启动的一些关键代码,<Peercast播放模块分析>解释Peercast如何调用播放器实现媒体播放的。以上是一些比较重要的文章,其他文章可以有选择性地看看。其他的话就看源码注释吧。

这份源码注释有很多不足之处,是我学习过程中的一个成果,大家请见谅。如果它能给你阅读 Peercast的过程中带来一些帮助的话,我将感到非常荣幸。
特此声明。

王浩聪
2007.12.11
 

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 阅读详情

相关推荐

P2P网络技术原理与C++开发案例 源代码和第五章电子书 Peercast(王浩聪注释版)

基础理论篇 第1章 P2P基本概念 3 1.1 P2P网络的定义 3 1.2 P2P网络结构 4 1.2.1 集中式P2P网络 4 1.2.2 完全分布式非结构化P2P网络 5 1.2.3 完全分布式结构化P2P网络 6 1.2.4 混合式P2P网络 7 1.2.5 P2P网络和传统网络的对比 8 1.3 P2P网络的应用 9 1.4 P2P的发展 11 1.4.1 起步 11 1.4.2 发展 11 1.4.3 高峰 11 1.5 P2P技术国内外研究现状 12 1.5.1 国外相关研究 12 1.5.2 国内研究现状 12 1.6 本章总结 13 1.7 练习题 13 第2章 主流P2P系统 15 2.1 文件共享类系统 15 2.1.1 Napster 15 2.1.2 Gnutella 17 2.1.3 BitTorrent 19 2.1.4 eMule 20 2.1.5 Maze 22 2.2 即时通信类系统 24 2.2.1 Skype 24 2.2.2 QQ 26 2.2.3 GTalk 27 2.3 流媒体类系统 28 2.3.1 AnySee 28 2.3.2 PPLive 29 2.4 共享存储类系统 30 2.4.1 OceanStore 30 2.4.2 Granary 32 2.5 对等计算类系统 34 2.6 本章总结 35 2.7 练习题 35 第3章 P2P网络的基础——搜索和路由算法 36 3.1 传统搜索技术 36 3.2 P2P搜索技术的发展 37 3.3 DHT网络(结构化P2P网络)的搜索技术 39 3.3.1 DHT路由原理 39 3.3.2 Chord 40 3.3.3 Pastry 44 3.3.4 CAN 46 3.3.5 Tapestry 48 3.3.6 Kademlia 50 3.3.7 小结 53 3.4 非结构化P2P网络的搜索技术 53 3.4.1 Flooding 54 3.4.2 Modified-BFS 55 3.4.3 Iterative Deepening 55 3.4.4 Random Walk 56 3.4.5 Query Routing 57 3.4.6 Gnutella2 59 3.4.7 移动Agent 59 3.4.8 小结 60 3.5 小世界(Small World)模型 61 3.5.1 小世界模型概述 61 3.5.2 聚类分布(CD)算法 62 3.5.3 小世界网络的研究现状 66 3.6 P2P搜索技术研究的挑战 66 3.7 本章总结 67 3.8 练习题 67 第4章 P2P应用与安全 69 4.1 P2P应用面临的安全问题 69 4.1.1 P2P应用引发的版权问题 69 4.1.2 P2P应用对现有网络应用的威胁 71 4.1.3 P2P网络病毒与蠕虫 71 4.1.4 结构化P2P网络的隐患 72 4.2 P2P应用与安全技术 76 4.2.1 P2P应用中的密码学技术 76 4.2.2 P2P应用中的网络安全技术 78 4.2.3 利用P2P网络解决安全问题 82 4.3 P2P实例系统--Skype的安全性分析 88 4.3.1 Skype简介 89 4.3.2 Skype安全机制分析 93 4.3.3 Skype流量识别 96 4.4 本章总结 98 4.5 练习题 98 第5章 P2P应用的相关技术 100 5.1 P2P与网络穿越 100 5.1.1 NAT网络概念 100 5.1.2 STUN协议与NAT穿越 103 5.1.3 UDP穿越NAT 106 5.1.4 TCP穿越NAT 107 5.1.5 NAT类型检测 108 5.1.6 常见NAT穿越解决方案 111 5.2 P2P与IMS结合 112 5.2.1 什么是IMS 112 5.2.2 P2P与IMS的网络融合 112 5.3 VoIP通信基础 113 5.3.1 VoIP系统概念 113 5.3.2 H.323协议 115 5.3.3 SIP 115 5.3.4 RTP 117 5.3.5 RTSP 118 5.4 P2P和SIP的结合 119 5.4.1 P2P和SIP结合方案分析 120 5.4.2 基于Pastry设计P2P-SIP系统 122 5.5 本章总结 125 5.6 练习题 126 C++开发案例篇 第6章 P2P应用开发平台 129 6.1 Windows Peer-to-Peer Networking平台 129 6.1.1 Windows Peer-to-Peer Networking平台简介 129 6.1.2 Windows Peer-to-Peer Networking平台结构 130 6.1.3 Windows Peer-to-Peer Networking平台工作机制 132 6.1.4 Windows Peer-to-Peer Networking平台开发环境 136 6.1.5 Windows Peer-to-Peer Networking平台开发入门 139 6.2 JXTA 161 6.2.1 JXTA简介 161 6.2.2 JXTA的平台结构 162 6.2.3 JXTA的基本概念 163 6.2.4 JXTA的网络架构 166 6.2.5 JXTA开发环境 171 6.3 本章总结 175 6.4 练习题 175 第7章 P2P文件共享系统开发实例一——eMule的设计与实现 176 7.1 eMule系统概述 176 7.1.1 P2P文件共享系统的背景 176 7.1.2 eMule的设计目标 177 7.2 eMule系统原理 178 7.2.1 eMule协议原理 178 7.2.2 Kad协议原理 185 7.3 eMule系统设计 186 7.3.1 eMule系统结构概述 187 7.3.2 文件基础设施 187 7.3.3 网络基础设施 189 7.3.4 eMule通信协议 190 7.3.5 任务处理机制 191 7.3.6 Kad系统结构概述 195 7.4 eMule程序代码分析 199 7.5 eMule系统部署 223 7.5.1 系统编译和运行 224 7.5.2 系统安装与配置 225 7.5.3 文件搜索和下载 226 7.5.4 文件上传 227 7.6 eMule系统分析 228 7.7 本章总结 228 7.8 练习题 228 第8章 P2P文件共享系统开发实例二——BT的设计与实现 230 8.1 BitTorrent系统概述 230 8.2 BitTorrent系统原理 230 8.2.1 BitTorrent协议原理 231 8.2.2 BitTorrent Tracker服务器原理 234 8.3 BitTorrent系统设计 236 8.3.1 Arctic客户端系统结构概述 236 8.3.2 LibTorrent库系统结构概述 237 8.4 BitTorrent程序代码分析 238 8.4.1 Arctic客户端代码分析 238 8.4.2 LibTorrent库代码分析 260 8.5 BitTorrent系统部署 270 8.5.1 BitTorrent服务器的部署 271 8.5.2 BitTorrent客户端的部署 271 8.6 BitTorrent系统分析 271 8.7 本章总结 272 8.8 练习题 272 第9章 P2P即时通信系统开发实例——Hermes的设计与实现 273 9.1 Hermes系统概述 273 9.1.1 P2P即时通信系统的背景 273 9.1.2 Hermes系统设计目标 274 9.2 Hermes系统原理 274 9.2.1 登录认证机制 275 9.2.2 语音提取与播放机制 277 9.3 Hermes系统设计 279 9.4 Hermes程序代码分析 280 9.4.1 语音处理模块代码分析 280 9.4.2 通信模块代码分析 295 9.5 Hermes系统分析 302 9.6 本章总结 302 9.7 练习题 302 第10章 P2P流媒体系统开发实例——PeerCast的设计与实现 303 10.1 P2P流媒体系统概念 303 10.1.1 流媒体内容发布网络技术 303 10.1.2 P2P流媒体系统概述 304 10.1.3 P2P流媒体系统架构 304 10.1.4 现有系统 305 10.2 流媒体技术 305 10.3 设计P2P音视频点播系统 306 10.3.1 多媒体数据压缩 306 10.3.2 应用层QoS 306 10.3.3 应用层多播技术 306 10.3.4 流媒体同步技术 307 10.3.5 PeerCast实现分析 307 10.3.6 改造BitTorrent成为流媒体系统 311 10.4 本章总结 311 10.5 练习题 311 第11章 P2P视频点播系统开发实例——Myseelite的设计与实现 313 11.1 Myseelite系统概述 313 11.1.1 P2P视频点播系统的背景 313 11.1.2 Myseelite的设计目标 314 11.2 Myseelite系统原理 315 11.2.1 基本概念 315 11.2.2 工作机制 316 11.2.3 ACE简介 317 11.2.4 wxWidgets简介 320 11.3 Myseelite系统设计 320 11.3.1 Capture子系统 320 11.3.2 Super Peer子系统 321 11.3.3 Tracker子系统 322 11.3.4 Client子系统 324 11.4 Myseelite程序代码分析 329 11.5 Myseelite系统部署 353 11.5.1 系统编译 353 11.5.2 系统运行 353 11.5.3 轮播流程 354 11.5.4 直播流程 357 11.6 Myseelite系统分析 359 11.7 本章总结 359 11.8 练习题 3

Peercast简介

    PeerCast.org成立于2002年四月,它是一个非盈利性的站点,提供免费的P2P电台软件。这个项目的目标是创建一个容易使用、简单的和可靠的软件客户端,从而使任何人都可以广播流媒体,而不必耗费昂贵的服务器或者带宽。    PeerCast为广播者提供相当可观的节省,因为他们不必提供带宽给所有的接听者。一个单独的56K调制解调器即可用来为整个网络广播一个电台。    PeerCa

bbisonic的专栏 3140

Peercast(王浩聪注释版)

Peercast注释版是我在做本科毕业设计时分析Peercast的一些成果,当时阅读代码的时候做了注释,然后写了一些分析文章。本来想发到自己的博客上保留一份记录的,不想后来竟成了很多人参考Peercast的资料。这点上我是有些惭愧的,因为很多不成熟的想法和不正确的观点可能会误导大家,也希望大家能够分辨吧。本来想形成一份比较完整的注释版,但后来由于毕业以及转变研究方向等因素已经没有继续做下去了。不过核心的代码我想应该还是比较清晰的,大家可以参考一下。我把Peercast注释版发到优快云的资源上,大家可以访问http://download.youkuaiyun.com/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>

Peercast的改进分析

Peercast可以说是一个实验的产品,而不是一个稳定的商业版本。所以无论在稳定性还是在性能上都存在一定的问题。这里提出Peercast存在的一些问题,并考虑相应的改进方法。希望可以为大家改进Peercast提供一些帮助。先解释几个名词:父节点:也就是此时你在向别人传输数据。一个节点可以同时是父节点和子节点。子节点:也就是此时你在接收父节点传输给你的数据。基于文件传输的流媒体传输:   

bbisonic的专栏 3509

机械臂速成小指南(八):标准DH法实战——从连杆坐标系到运动学方程

本文详细介绍了机械臂运动学建模中的标准DH法,从连杆坐标系的建立到运动学方程的求解,提供了实用的操作步骤和代码示例。通过DH参数表和变换矩阵的构建,帮助读者快速掌握机械臂运动学建模的核心技术,并解决实际应用中的常见问题。

oo7890的博客 211

单目和多目视觉统一标定

单目和多目视觉统一标定 一.单目视觉标定 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在

吴建明wujianming_110117 2911

关于Peercast注释的声明

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

bbisonic的专栏 1706

badusb详细制作教程(两种方式实现远控)

badusb是一种几乎可以突破任何杀毒软件和防火墙的设备,堪称渗透测试利器 文章目录前言一、什么是badusb?二,badusb的优点三,badusb是如何攻击的?badusb原理HID攻击漏洞产生原因三、准备步骤1.设备2,编辑器的安装与设置四,编写代码(重点)第一种: SEToolkit + badusb实现PowerShell注入攻击第二种:Cobalt Strike + badusb 实现PowerShell注入攻击五,烧录六,badusb有多强大攻击场景总结 BadUSB是《黑客军团》中

Ghost_system的博客 1万+

在局域网中搭建自己的YP服务器

有些朋友想做一些Peercast在局域网中的应用,使每个人可以发布自己的网络电台,并可通过YP来查找和访问已发布的网络电台.这里介绍如何在在局域网内搭建自己的YP服务器.本方案的平台是WinXP+IIS5.1+PHP5.1.4,至于其他平台如Apache+PHP方式大家可以参考网上的相关文档所谓YP指的是Yellow Page,也就是一个目录服务器.1.安装IIS服务器2.安装PH

bbisonic的专栏 2万+

华为ENSP完整安装教程

华为ENSP完整安装教程

Hnm456756的博客 7338

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

jks212454的博客 2308

PCP协议实现详解

PCP协议,也就是Peercast Protocol,是Peercast用来在节点间传送信息所定义的协议。协议定义的字段在pcp.h中,本文以如何在节点间传递节点信息(也就是ChanHit)来解释PCP协议的定义、运行及如何编程。//ChanHit信息static const ID4 PCP_HOST  = "host";static const ID4 PCP_HOST_ID  = "id"

bbisonic的专栏 1万+

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码)

自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类。

十多年IT经验,专注机器视觉,智能制造半导体行业 5031

Peercast整体架构分析

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

bbisonic的专栏 6542

让 ABAP 程序天生可翻译:Text Symbols 与 Text Pool 从入门到工程化落地

ABAP 国际化实践:Text Symbols 的工程价值与落地方法 摘要: 本文系统阐述了 ABAP 开发中 Text Symbols 的核心价值与实践方法。通过解耦程序逻辑与语言文本,Text Symbols 实现了代码国际化,避免了硬编码带来的维护难题。文章详细介绍了 Text Pool 结构、两种引用方式(独立引用 TEXT-001 和附着式 '(001)'),以及 SE38 和 SE63 的翻译流程。特别强调最大长度预留、术语统一等工程实践,并提供了 READ TEXTPOOL 自动化检查方案。最

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 239

【MATLAB】嵌入式PID控制参数整定与优化

本文提出了一种基于MATLAB仿真的嵌入式PID参数优化方法,解决了传统人工试凑法效率低、适应性差的问题。通过建立一阶滞后被控对象模型,对比分析了不同PID参数组合的性能表现,筛选出最优参数。仿真结果表明,优化后的PID参数能有效降低超调量(从传统方法的显著超调降至接近0%),缩短调节时间,提高稳态精度。最终将优化算法部署到STM32平台,实现了"仿真整定-参数优化-嵌入式落地"的完整开发流程。该方法显著提升了嵌入式系统的响应速度和控制精度,为工业控制应用提供了标准化解决方案。

unber的博客 46

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

bbisonic的专栏 6398

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

如何下载Peercast源代码

由于Peercast源代码是用的SVN下载方式,所以可能还有很多朋友们不知道如何下载最新的Peercast源代码,在这里我简单地介绍一下SVN是个版本管理工具,开源代码的版本管理一般采用CVS和SVN工具如果在WINDOWS环境下:1.下载 Tortoise SVN:http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1

bbisonic的专栏 6102

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Sys.h源代码分析

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

bbisonic的专栏 5718

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Peercast播放模块分析

这里以YP上的JOKV-FM(TEST)为例当点击YP上的一个频道时,其访问地址为peercast://pls/25838B9F1EAE27079B793C9FBA0E4156?tip=222.148.187.176:7144peercast://指的是peercast协议,由于peercast注册了此协议,所以在IE中输入这个地址时会自动启动peercast并把这个地址传送给peerca

bbisonic的专栏 5198

阅读Peercast源代码的一些经验

Peercast源代码是我第一次看超过2万行的代码,在这期间收获很大,也积累了一些经验。Peercast源代码是我第一次看超过2万行的代码,在这期间收获很大,也积累了一些经验,在此与大家分享,希望为大家看源代码提供一些帮助和参考.这里主要介绍的是在Visual Stdio6.0环境下,看Peercast的win32版本代码的一些经验1.拿到源代码的第一个步骤是编译并运行,而且你首先要对如何

bbisonic的专栏 4744

Peercast核心代码执行流程

执行的流程大致如下:Peercast启动时创建servMgr对象servMgr启动两个服务器线程,分别为servProc和idleProcservProc启动两个监听servent,分别用于监听7144和7145端口监听servent启动服务器监听线程Servent::servProc当服务器监听线程监测到有新连接进入时,给这个连接分配新的servent新的servent初始化连接信息,并启动in

bbisonic的专栏 4087

如何用Peercast发布和收听电台

如何实时广播MP3:所需软件:Peercast + Winamp + ShoutcastDSP1.安装Peercast(下载地址http://www.peercast.org/download.php)2.安装Winamp3.安装ShoutCastDSP4.打开Peercast5.配置ShoutcastDSP。在Winamp中点击选项->参数,在参数面版左边选择插件中的DSP音效,可以在右边看

bbisonic的专栏 3961

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

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

bbisonic的专栏 3645
上一篇: 换博客啦~~~~hcwang.blogcn.com~~~~
bbisonic
博客等级 码龄21年 30粉丝 143原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值