eMule协议规范全文[中文版本](8)

2019-01-26 19:10

string

NA NA NA NA NA

可选的。字符串条件。字符串值是“Audio”、“Video”、“Pro”或“Image”其中之一。类型域是3字节:0x1 0x0 0x3

File Type Constraint 可变的

Min Size Constraint 可变的

可选的。整数条件。提供的文件大小单位是M。类型域是4字节:0x1 0x1 0x0 0x2

Max Size Constraint 可变的

Availability Constraint

Filename Extension 可变的 constrain

可变的

可选的。整数条件。提供的文件大小单位是M。类型域是4字节:0x2 0x1 0x0 0x2

可选的。整数条件。设置一个较低的限制在提供搜索文件的客户端数目上。类型域是4字节:0x1 0x1 0x0 0x15

可选的。字符串条件。类型域是3字节:0x1 0x0 0x3

解析的搜索字符串格式

解析的搜索字符串用布尔操作符‘AND’、‘OR’和‘NOT’与字符串操作数来编码一个表达式的二叉树。树是用预先顺序编码的。操作符编码成2字节整数,0x0对应‘AND’, 0x100对应‘OR’,0x200对应‘NOT’。字符串用TLV格式编码,这里,类型的域是一个字节值为0x1,长度的域是2字节整数。注意,当搜索字符串是一个单词,它就作为单个字符串操作数(没有操作符)编码。以后的eMule版本编码一个只有”AND”操作符的字符串搜索表达式,用空格符代替“AND”,这样适合服务器的搜索字符串解析,把一个语句分成一系列的用“AND”操作符分隔的单词。

可选的条件格式

条件是一序列的条目。每个条目以“AND”描述符(2字节0x00)开始,紧接着是已编码的条件。这样,整个搜索行格式是<“搜索字符串” AND 条件1 AND 条件2 等>,如下面的例子示意图所示。编码的条件被分成3个域:

1. 种类 – 单字节,描述是字符串条件(0x2)还是整数条件(0x3) 2. 值 - 要么是类型长度编码的字符串,要么是4字节整型值 3. 类型 – 3或4字节,描述条件的种类(查看上面的主表)

36

6.2.10 搜索结果

从服务器发送到客户端的消息,作为对搜索请求的回应。这个消息通常被压缩。消息大小可变的。

名称 字节大小 默认值 注释 Protocol 1 0xE3

Size 4 消息大小是以字节为单位,不包括头部和大小的域

Type 1 0x16 OP_SEARCHRESULT操作码的值

Result Count 4 NA 消息中搜索结果的数目

Result list 可变的 NA 搜索结果列表

37

名称

File Hash Client ID

Client Port

Tag Count Tag list

名称 Protocol Size Type

File hash

搜索结果列表项格式

下面的表格描述了一个搜索结果列表项的格式。每个搜索结果包含了一个哈希,这个哈希唯一地标识文件,连同拥有这个文件的其它eMule客户端的细节。也有几个标签描述了文件属性。标签列表如下所述。注意,大部分的标签是可选的,它们的次序是不保证的。标签编码规则在本章开头详细描述。

字节大小 默认值 注释

16 NA 哈希值,用来文件的唯一的身份证明

4 NA 拥有文件的eMule客户端的ID

2 NA 拥有文件的客户端的TCP端口

4 NA 下面描述符标签的个数

可变的 NA 描述符标签列表

6.2.11 获得源

该消息从客户端发送到服务器,为文件请求源(其它客户端)。消息大小是22字节。

字节大小 默认值 注释 1 0xE3

4 消息大小是以字节为单位,不包括头部和大小的域

1 0x19 OP_GETSOURCERS操作码的值

16 NA 请求文件的哈希

38

6.2.12 已找到的源

该消息从服务器发送到客户端,带有请求文件的源(其它客户端)。消息大小可变的。

名称 Protocol Size Type

File hash

Sources Count

List of sources

源列表项格式

下面表格描述了源列表项的格式。每个源包含了拥有该文件的eMule客户端的细节。

名称 Client ID

Client Port

6.2.13 回调请求

该消息从客户端发送到服务器,请求其它客户端回调 – 例如,连接到请求中的客户端。有高ID的、想连接到一个低ID客户端(见2.4节)发送该消息。消息大小是10字节。

名称 Protocol

字节大小 1

默认值 0xE3

注释

字节大小 4 2

默认值 NA NA

注释

拥有该文件的eMule客户端的客户ID

拥有该文件的eMule客户端的TCP端口

字节大小 1 4 1 16 1 可变的

默认值 0xE3 0x42 NA NA NA

注释

消息大小是以字节为单位,不包括头部和大小的域

OP_FOUNDSOURCERS操作码的值

请求文件的哈希

消息中源的个数 源列表

39

Size Type Client ID

4 1 4

0x1C NA

消息大小是以字节为单位,不包括头部和大小的域

OP_CALLBACKREQUEST操作码的值

被请求回调客户ID

6.2.14 被请求回调

该消息从服务器发送到客户端,指出另一个客户端要求接收的客户端连接它。当接收的客户端是低ID(见2.4节),发送该消息。消息大小是12字节。接收的客户端尝试连接这个由回调请求包指定的IP和端口。

名称 Protocol Size Type Client IP

Client TCP Port

6.2.15 回调失败

该消息从服务器发送到客户端,指出客户端的回调请求失败。消息大小是6字节。接收的客户端把这个消息记日志,然后丢弃它。

名称 Protocol

字节大小 1

默认值 0xE3

注释

字节大小 1 4 1 4 2

默认值 0xE3 0x35 NA NA

注释

消息大小是以字节为单位,不包括头部和大小的域

OP_CALLBACKREQUESTED操作码的值

请求呼叫自己的客户端IP

客户端监听的TCP端口

40


eMule协议规范全文[中文版本](8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:都可coco奶茶加盟 抢占饮品市场份额吸金赚不停

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: