eMule电驴eDonkey源代码精辟分析

最近给一家公司写一个类似电驴的P2P客户端.写的相当的累,但是收获也很大,对电驴的代码进行

了深入的分析,现在把所得贡献给大家,网上有很多对电驴协议的分析,其实有些地方是误导大家了,

中国的程序员还是很小家子气,就是怕别人超过自己.

进入正题,电驴的协议和各种常量参数定义在opcodes.h中,

#define OP_EDONKEYHEADER  0xE3
#define OP_KADEMLIAHEADER  0xE4

这是他的协议码,他大部分的通信包第一个字节都是OP_EDONKEYHEADER  0xE3,

这是他的客户端之间的协议

#define OP_HELLO    0x01 // 0x10<HASH 16><ID 4><PORT 2><1 Tag_set>
#define OP_SENDINGPART   0x46 // <HASH 16><von 4><bis 4><Daten len:(von-bis)>
#define OP_REQUESTPARTS   0x47 // <HASH 16><von[3] 4*3><bis[3] 4*3>
#define OP_FILEREQANSNOFIL  0x48 // <HASH 16>
#define OP_END_OF_DOWNLOAD      0x49    // <HASH 16>
#define OP_ASKSHAREDFILES  0x4A // (null)
#define OP_ASKSHAREDFILESANSWER 0x4B // <count 4>(<HASH 16><ID 4><PORT 2><1 Tag_set>)[count]
#define OP_HELLOANSWER   0x4C // <HASH 16><ID 4><PORT 2><1 Tag_set><SERVER_IP 4><SERVER_PORT 2>
#define OP_CHANGE_CLIENT_ID  0x4D // <ID_old 4><ID_new 4>
#define OP_MESSAGE    0x4E // <len 2><Message len>
#define OP_SETREQFILEID   0x4F // <HASH 16>
#define OP_FILESTATUS   0x50 // <HASH 16><count 2><status(bit array) len:(

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值