Network 版 (精华区)

发信人: zzn (爱你到内伤), 信区: Network
标  题: mms协议英文资料(10)
发信站: 哈工大紫丁香 (2003年08月23日10:53:24 星期六), 站内信件

01 To Client
Prefix 1 00 00 00 00 - ErrorCode
Prefix 2 f0 f0 f0 f0 - flags (see flags section)
Followed by structure as defined below.
Server replies with own data including the server software version number and 
more.
0b 00 04 00 ?? 1c 00 03 00 ?? 00 00 00 00 00 00 f0 3f double precision value 
= 1 and unknown 01 00 00 00 ?? 01 00 00 00 ?? 00 80 00 00 ?? = unknown 00 00 
a0 00 ?? or sometimes value shows 80 96 98 00 = 10000000 Ww ww ww ww Length 
of server version Xx xx xx xx Length of tool version Yy yy yy yy Length of 
download update player URL Zz zz zz zz Length of password encryption type
Unicode strings follow of lengths given in the structure. If no field is 
required, the length = 0. Each length count represents a 2 byte field length 
for each Unicode character.
It is interesting that server versions lower than 3.0 do not accept command 
0x32 to server data dumps (see later in text). Media Player does not send 
them when less than v3.0. Presumably, this feature was not written in until 
that version.
The Unicode strings are made from the following data:
Server version + null like; 4.1.0.3858 or the latest currently shows 
9.00.00.3101
Tool version + null like; 5.1.0.0
Update player URL + null like; http://www.theupdatesite.com/updateplayer.html
Encryption type + null like; BASIC, DIGEST or NTLM
Ending with 12 bytes of unknown data, sometimes as zeros, other times as hex 
data.
Not all strings are present in a 0x01 command packet, but the server version 
seems to always be there.
For a password protected session, BASIC or another encoding type string must 
be present.
02 To Server
Prefix 1 f1 f0 f0 f0 - flags (see flags section)
Prefix 2 ff ff ff ff
Then 00 00 00 00
Then 00 00 a0 00 - unknown, can echo 80 96 98 00 from 01 command
Then 02 00 00 00 - reflects the Header PacketIDType
This sends the transport protocol, client IP address and client socket port 
to the server.
The Unicode string is sent as below:
“ \\123.456.789.012\TCP\1234” + null + optional Unicode data e.g. “0”.
Optional data : This can show 10 bytes of unknown data when the transport 
protocol is UDP.
Where: 123.456.789.012 is the client IP address,
TCP (or UDP) states the transport protocol we want,
And 1234 is the client TCP or UDP socket number

02 To Client
Prefix 1 00 00 00 00 - ErrorCode
Prefix 2 f1 f0 f0 f0 - flags (see flags section)
Then nn nn nn nn - 4 bytes showing a length of data value as the
amount of 4 byte fields in its data.
Note: this may not always be true!
This value includes the length field
itself. So, 4 bytes = 1.
Then Unicode string data follows.
Response from protocol selection command 02. The text “Funnel Of The” or 
sometimes ‘Funnel of the gods’ is of unknown use normally seen in this 
data. Assume the transport protocol selection was accepted.
03 To Client
Prefix 1 00 00 00 00 - ErrorCode
Prefix 2 00 00 00 00
This indicates a protocol selection error from the server. It also indicates 
a close socket connection request from the server to the client. Connection 
is terminated after this command.
05 To Server
Prefix 1 01 00 00 00 - CommandLevel
Prefix 2 ff ff ff ff
Then 8 zeros (unknown) could be double precision value
Then Unicode string data as below.
This command sends file path (at server) and file name request to the server.
It does not include any IP or DNS information, just the path and name for the 
media.
The Unicode data string consists of the following:
“this/is/the/file/path/on/server/with/filename.ext” + null + unknown 
optional data like “2C3”
Note: After a filename e.g. …/filename.asf there may also follow Digital 
Rights Management licence data. This is passed to the server as a parameter 
data string like this:-
…/filename.asf?parameter1, parameter2
Just like any other .ASP or .JSP active input parameter string. Where 
parameter1 can = 0 and parameter2 shows 32 bytes of hex represented string 
data.
If the media file requires this DRM data, and you do not supply the exact 
licence string, you get an error and you will be denied access. In that case, 
command 03 to client reports disconnection along with the ‘licence required’ 
errorcode.
05 To Client
Prefix 1 00 00 00 00 - ErrorCode
Prefix 2 04 00 00 00 - reflects the Media PacketIDType value
Then struct follows
Sending media file now. Includes the file play time.
01 00 00 00 Unknown but can change either 0 or 1. 00 00 00 00 Could be an 
offset time eg. 00 00 00 40 = 2 sec. 00 00 00 00 ?? 00 00 00 00 ?? 00 00 00 
00 ?? Xx xx xx xx Shows file time less the buffer time as a single precision 
float value. This value may only be valid during a seek operation. Otherwise 
it can show just 1. 
--
    如果世界上每个地方都可以看到月亮,
    那就让我搬到月亮上去悄悄看你。

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.243.49]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.530毫秒