ED2K服务器server.met文件解析

server.met由一系列ed2k服务器地址和附加信息组成。这个文件的组成,并没有才有通用的文件结构化方法,而是采用mule 自己的一套机制,Maxiee把它叫做TAG机制,即数据对象是由TAG标签来描述的。这种机制,在mule中是广泛采用的。

数据格式图表

通过分析代码,可以画出数据格式的图表:
server.met数据格式

Tag的类型

Tag具有多种类型,每种都包含不同的数据长度,这都在Tag类型和Tag长度中反映出来。

在amule中TagTypes.h可以找到对Tag类型的规定:

[c language="++"]
enum Tag_Types {
TAGTYPE_HASH16 = 0x01,
TAGTYPE_STRING = 0x02,
TAGTYPE_UINT32 = 0x03,
TAGTYPE_FLOAT32 = 0x04,
TAGTYPE_BOOL = 0x05,
TAGTYPE_BOOLARRAY= 0x06,
TAGTYPE_BLOB = 0x07,
TAGTYPE_UINT16 = 0x08,
TAGTYPE_UINT8 = 0x09,
TAGTYPE_BSOB = 0x0A,
TAGTYPE_UINT64 = 0x0B,
// Compressed string types
TAGTYPE_STR1    = 0x11,
TAGTYPE_STR2,
//...下面的省略了,不太常用
[/c]