eMule协议规范 附录 A - 消息编码 客户端服务器UDP消息
2008-10-13 01:05
435 查看
译自 Yoram Kulbak and Danny Bickson 《The eMule Protocol
Specification》
翻译:lzcx
QQ:402722857
EMail: lzcx_cn@yahoo.com.cn
供学习用,转载请注明出处
6.3 客户端服务器UDP消息
本章描述了在服务器和客户端之间用UDP传送的消息。UDP消息头部不包含消息的大小,因为它可以从UDPL3头部推论出来。大部分的消息都是很小、固定大小的,周期性地发送到客户端服务器列表中的服务器上。
6.3.1获取源
从客户端发送到服务器,为文件(其它客户端拥有这文件)请求源。这个消息会每秒周期发送,为那些只有少数源的文件。
6.3.2 发现的源
从服务器发送到客户端,作为对UDP获取源消息的回应。该消息只在当服务器有请求文件的源时才发送。
源列表项格式
下表包含了一个文件的源。
6.3.3 状态请求
该消息是每几秒发送到服务器的状态请求。这个消息包含随机4字节询问,这个询问应该由服务器反应。消息长度是6字节。这个消息是客户端服务器UDP保持连接方案(见3.1节)的一部分。
6.3.4 状态回应
服务器回应消息,针对客户端UDP状态请求消息。包含几个服务器信息项,注意,大部分的项是可选的。
6.3.5 搜索请求
当客户端配置成用UDP搜索时,发送该消息到客户端列表中的服务器上。该消息由两个可选的操作码(0x98或0x92),后者指出服务器的以后(加强)版本。客户端根据服务器发送过来的UDP状态回应消息(6.3.4节)中的UDP标识来决定用哪个操作码。为了发送加强的操作码,服务器必须打开0x02位。UDP标识也可以从配置文件中载入。
6.3.6 搜索回应
搜索回应消息从服务器发送到客户端。该消息发送来回应搜索消息中的两个操作码。该消息的格式与TCP搜索结果消息非常相似,虽然结果被折叠没有结果个数。请阅读描述TCP搜索结果消息的章节,获得更多的关于该消息不同的字段(6.2.10节)。
6.3.7 服务器描述请求
每隔几秒发送到服务器。没有包含进有效负载。是UDP ping 策略一部分。
6.3.8 服务器描述回应
从服务器发送到客户端,作为对客户端的服务器描述请求的回应。包含名称和回应的服务器的描述。该消息是可变长度的。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=640307
Specification》
翻译:lzcx
QQ:402722857
EMail: lzcx_cn@yahoo.com.cn
供学习用,转载请注明出处
6.3 客户端服务器UDP消息
本章描述了在服务器和客户端之间用UDP传送的消息。UDP消息头部不包含消息的大小,因为它可以从UDPL3头部推论出来。大部分的消息都是很小、固定大小的,周期性地发送到客户端服务器列表中的服务器上。
6.3.1获取源
从客户端发送到服务器,为文件(其它客户端拥有这文件)请求源。这个消息会每秒周期发送,为那些只有少数源的文件。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x9A | OP_GLOBGETSOURCES操作码的值 |
File ID List | NA | NA | 文件ID(哈希)(每个16字节长)列表,这些ID一个个排序,没有优先的。 |
从服务器发送到客户端,作为对UDP获取源消息的回应。该消息只在当服务器有请求文件的源时才发送。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x9B | OP_GLOBFOUNDSOURCES操作码的值 |
File source list | NA | NA | 下面描述的文件源的列表。 |
下表包含了一个文件的源。
名称 | 字节大小 | 默认值 | 注释 |
File ID | 16 | NA | 找到源的文件的ID |
Sources Count | 1 | NA | 报告的源的个数 |
List of sources | NA | NA | 源的列表,和6.2.11节的TCP获得源消息的格式一样 |
该消息是每几秒发送到服务器的状态请求。这个消息包含随机4字节询问,这个询问应该由服务器反应。消息长度是6字节。这个消息是客户端服务器UDP保持连接方案(见3.1节)的一部分。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x96 | OP_GLOBSERVSTATREQ操作码的值 |
Challenge | 4 | NA | 发送到服务器的无符号整数的询问,用来回应验证(在客户端相对应的变量叫做”time”) |
服务器回应消息,针对客户端UDP状态请求消息。包含几个服务器信息项,注意,大部分的项是可选的。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x97 | OP_GLOBSERVSTATRES操作码的值 |
Challenge | 4 | NA | 无符号整数。可以作为客户端发送的询问的回应,或者其它不同的数值 |
User Count | 4 | NA | 可选的。当前登录到服务器中的用户数目 |
Files count | 4 | NA | 可选的。服务器数据库中的文件数目 |
Soft files limit | 4 | NA | 可选的。无符号整数,服务器软件文件限制 |
Hard files limit | 4 | NA | 可选的。无符号整数,服务器硬件文件限制 |
UDP flags | 4 | NA | 可选的。服务器UDP标识。定义了两种不同的标识:0x01指出服务器支持获得源消息。0x02指出服务器支持扩展的获得文件消息 |
当客户端配置成用UDP搜索时,发送该消息到客户端列表中的服务器上。该消息由两个可选的操作码(0x98或0x92),后者指出服务器的以后(加强)版本。客户端根据服务器发送过来的UDP状态回应消息(6.3.4节)中的UDP标识来决定用哪个操作码。为了发送加强的操作码,服务器必须打开0x02位。UDP标识也可以从配置文件中载入。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x98或0x92 | 分别是OP_GLOBSEARCHREQ或OP_GLOBSEARCHREQ2操作码的值 |
Search request parameters | 可变的 | NA | 与在客户端服务器TCP交流一章中的搜索请求消息参数,见6.2.9,是一样的。 |
搜索回应消息从服务器发送到客户端。该消息发送来回应搜索消息中的两个操作码。该消息的格式与TCP搜索结果消息非常相似,虽然结果被折叠没有结果个数。请阅读描述TCP搜索结果消息的章节,获得更多的关于该消息不同的字段(6.2.10节)。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x99 | OP_GLOBSEARCHRES操作码的值 |
Result lists | NA | NA | 结果列表(没有个数),如6.2.10所述 |
每隔几秒发送到服务器。没有包含进有效负载。是UDP ping 策略一部分。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x99 | OP_SERVER_DESC_REQ操作码的值 |
从服务器发送到客户端,作为对客户端的服务器描述请求的回应。包含名称和回应的服务器的描述。该消息是可变长度的。
名称 | 字节大小 | 默认值 | 注释 |
Protocol | 1 | 0xE3 | |
Type | 1 | 0x99 | OP_SERVER_DESC_RES操作码的值 |
Name | NA | NA | 服务器的名称,以2字节长度编码的字符串,字符数组值格式 |
Description | NA | NA | 服务器的描述,以2字节长度编码的字符串,字符数组值格式 |
相关文章推荐
- eMule协议规范 附录 A - 消息编码 客户端服务器TCP消息
- eMule协议规范 附录 A - 消息编码 一般消息编码要点
- eMule协议规范 第三章 客户端服务器的UDP交流
- 电骡协议规范(三):客户端和服务器之间的UDP通讯
- eMule协议规范 第五章 客户端到客户端的UDP连接
- eMule协议规范 第二章 客户端服务器的TCP交流
- Socket编程 消息传送 UDP协议(窗口实现) 服务器
- 《UNIX网络编程》UDP客户端服务器:消息回显
- 网络编程(5)—— 基于Linux系统的UDP协议socket服务器和客户端
- 基于UDP协议下的客户端与服务器之间的通信
- UDP协议服务器、客户端使用实例Demo
- Python实现udp协议的简单服务器和客户端通信
- 电骡协议规范-第二章-客户端和服务器TCP通讯
- Socket编程 消息传送 UDP协议(窗口实现) 客户端
- linux udp协议服务器,客户端socket使用
- UDP协议下内网与公网IP进行发送消息,一对多.且选择不同的客户端发送消息
- 实现UDP协议,socket编程,调用到windowsAPI,实现客户端和服务器
- 网络编程(6)—— 基于Windws系统的UDP协议socket服务器和客户端
- Windows Socket UDP协议(服务器与客户端)
- Windows Socket UDP协议(服务器与客户端)