自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 c/c++字符指针与字符数组变量汇编层面的分析

字符指针:c代码:char* p = "test";反汇编代码:mov         dword ptr [p],offset string"test" (41573Ch)通过查看汇编,可以清楚的看到字符指针实际上是将常量字符串的地址赋值给了变量p。字符数组:c代码:char p[] = "test";反汇编代码:mov         eax

2010-04-12 15:13:00 670

转载 软件团队建设

一.软件团队     自软件危机爆发以来,人们开始用软件工程来试图解决这个问题,提出了各种各样的开发理论, 开发模式。软件开发的艺术性,和不可预知性,使得各种开发理论,开发模式,总是有其局限性,终始无法精确的用工程的手段来量化开发过程。     软件是科学与艺术的结合,理论与实践的结合。作为一种智慧产品,软件开发基本上是一种智能的投入,是软件开发团队的智慧结晶。在软件中凝结的智能愈高,软件的价值就

2009-02-23 16:40:00 2280

转载 http下载防盗链原理:http协议的字段referer 记录来实现

防盗链原理:http协议的字段referer 记录来实现2008-07-15 09:05防盗链原理: http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。 因此所有防盗链方法都是基于这个Referer字段 网上比较多的2种 一种是使用apache文件Fi

2008-09-18 18:46:00 1794

原创 vc调式

弹出错误窗体::_CrtDbgReportW(_CRT_ASSERT, file, line, NULL, message)

2008-09-12 10:23:00 549

转载 VC使用CRT调试功能来检测内存泄漏

信息来源:csdn     C/C++编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++应用程序正好印证了这句话。在 C/C++应用程序开发过程中,动态分配的内存处理不当是最常见的问题。其中,最难捉摸也最难检测的错误之一就是内存泄漏,即未能正确释放以前分配的内存的错误。偶尔发生的少量内存泄漏可能不会引起我们的注意

2008-09-08 10:25:00 748 1

转载 Peer wire protocol (TCP) Peer连接协议

Peer wire protocol (TCP) Peer连接协议总览peer协议就是用来交换torrent描述文件里定义的piece。注:原来这里用了术语piece,但是实际上piece用在描述文件里的片,而block才是实际传输中的块。一个client必须维护状态每个远程peer的每个连接的状态信息,状态如下:choked:拒绝,可以理解为阻塞。远程

2008-08-29 17:25:00 1526

转载 Peer wire protocol (TCP) 基于tcp的那部分协议

Peer wire protocol (TCP) 基于tcp的那部分协议 转2007-10-26 18:01Peer wire protocol (TCP) 基于tcp的那部分协议Overview总述The peer protocol facilitates the exchange of pieces as described in the metainfo file

2008-08-29 17:22:00 1980

转载 BitTorrent Trackerless DHT协议规范V1.0试行草案

Koder 下面的这个协议规范说明了新加入的BT客户端是如何通过DHT中的结点来查找资源的,Peer 结点的区分在文中有详述,规范的新意主要是吧BitTorrent和DHT结合了起来。相当于两层的结构。协议中详细介绍了Peer交互的几个命令 请求 回应 查找 命中等,并相应的说明了数据包的结构。格式简单,只要根据含义对照看就OK了。-----------------------

2008-08-29 17:21:00 1226

转载 随机字符串生成

#include #include using std::cout;const int SIZE_CHAR = 32;  //生成32 + 1位C Style字符串const char CCH[] = "_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";int main(){    srand((unsigned)t

2008-08-28 16:10:00 429

转载 字节顺序

今天碰一个关于字节顺序的问题,虽然看起来很简单,但一直都没怎么完全明白这个东西,索性就找了下资料,把它弄清楚.   因为现行的计算机都是以八位一个字节为存储单位,那么一个16位的整数,也就是C语言中的short,在内存中可能有两种存储顺序big-endian和litte-endian.考虑一个short整数0x3132(0x32是低位,0x31是高位),把它赋值给一个short变量,那

2008-08-28 12:58:00 484

转载 与基于udp协议的tracker服务器进行交互

通常BT客户端每几分钟就要向tracker发送一次请求.对于一些比较大的BT站点,其tracker的压力是可想而知的.降低tracker的压力首先考虑到的当然是采用更低网络开销的udp协议.于是Bittorrent udp-tracker protocol应运而生.    这个协议很简单.    下面是实现它的封装类:// UDPTrackerClient.h: interface for the

2008-08-28 10:34:00 833

转载 从tracker上获取peer列表

 从torrent文件中得到了tracker列表后,接下来的工作就是获取peer列表.tracker使用http协议.客户端向服务器发送标准的GET请求,就可以得到这个列表.tracker返回的信息是bencode编码.向tracker发送的GET请求有如下一些参数:info_hash(必须):    torrent文件中info字段的sha1.torrent文件解析器中已经计算此值,保存在CTo

2008-08-28 10:33:00 1185

转载 bencoding编码解析器

BT客户端开始一个下载首先要处理的就是torrent文件.而torrent文件使用bencoding编码.所以实现bencoding编码的解析器,就是第一步工作.Bencoding is done as follows:Strings are length-prefixed base ten followed by a colon and the string. For example /4:s

2008-08-28 10:32:00 601

转载 torrent文件解析器

第二步工作是解析torrent文件,有了bencoding编码解析器 解析torrent文件当然是易如反掌的任务了.实现的封装类CTorrentParser,完成的主要任务有:1.判断torrent文件是否有效2.得到如下的重要信息:        tracker服务器列表        文件列表        分块尺寸        分块个数        分块sha1的数组3.其他的一些次要信

2008-08-27 18:38:00 1272

转载 BitTorrent协议规范之torrent文件

 BitTorrent下载每个资源需要一个元数据信息(meta info)文件,该文件描述资源的相关信息,其后缀名通常为.torrent,所以也叫torrent文件。  torrent文件中内容采用Bencode编码,不熟悉Bencode的可以先查看BitTorrent协议规范之Bencode,一个torrent文件就是一个bencode的字典(dictionary)。所有字符串值采用UTF-

2008-08-27 14:48:00 2639 2

转载 BitTorrent协议规范之Bencode

Bencode(发音为 Bee-Encode)是 BitTorrent 用在传输数据结构的编码方式。这种编码方式支持四种数据:字符串 (Byte String)整数 (Int)线性表 (List)字典表 (Dictionary)Bencode 最常被用在 .torrent 档中,档案里的元数据都是 Bencode 过的字典表。Bencode其实非常简单,它就是定义了一套用字符串来表示这

2008-08-27 14:48:00 1800

转载 BitTorrent协议标准之peer_id

 peer_id用20个byte,长度固定。关于peer_id的命名方法有很多种,业界大概几种情况如下:第一种:(最流行的一种)"-XXNNNN-"+随机数字。至于后面的是不是随机数字不重要,重要的是它们前面的前缀比较统一,XX用两个字符表示BT客户端软件的缩写,NNNN用4个数字表示BT客户端软件的版本。使用这种方式的BT软件很多,有下面这些:AG - Ares A~

2008-08-27 14:46:00 1890

转载 BitTorrent协议标准之数据包格式

BT中Peer和Peer之间交互的数据包的格式除了握手包之外都是:包长度(Int)+包体。当两个Peer连接后,要首先向对方发送握手包,如果握手失败,连接将关闭。握手包的格式是:字符串长度+字符串+保留字段+info_hash+peer_id字符串长度:后面的字符串长度,1个Byte字符串:标识协议的字符串。在1.0的bt协议中为"BitTorrent protocol"

2008-08-27 14:45:00 967

转载 BitTorrent协议标准之Peer状态

 BT的Peer之间通过TCP进行通讯,相互交换piece(实际上交换的最小单位是block),最终达到下载整个资源的目的。一个BT的客户端(本地节点)对于每个与它连接上的节点都维护两种状态信息,choked(阻塞)和interested(关注),它们的含义分别是:choked(阻塞):当一个远端节点把BT客户端(本地节点)阻塞住的时候,BT客户端向远端节点发送的所有请求block的请求包

2008-08-27 14:43:00 879

转载 BitTorrent协议标准之算法和策略

 BitTorrent将资源分成很多个piece,BitTorrent如何选择piece的下载次序,一个良好的块下载的调度策略可以增强网络的健壮性。1.最简单,你可以采用随机的选择。在p2p中,当需要一个调度策略的时候,有时候随机直接采用随机,达到的效果也还不错,而且随机实现很简单。2.一个比较好的策略是,在网络中越是稀有的Piece越是优先下载,当然,如果计算得出的稀有程度相同,这时候就

2008-08-27 14:42:00 1702

转载 BitTorrent协议规范之peer与tracker通讯协议

在BitTorrent中,peer和tracker之间通讯采用HTTP/HTTPS协议通讯。peer向tracker发HTTP GET request,然后tracker返回HTTPresponse。即Tracker Request和Tracker Response。Tracker Request:在Request中包括的信息全都放在URL中,向tracker服务器发送。采

2008-08-27 14:40:00 1387 1

转载 SHA1算法实现及详解

1 SHA1算法简介安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,

2008-08-18 18:12:00 859

空空如也

空空如也

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

TA关注的人

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