状态改成在线.客户端通过如下命令完成这步:
CHG 7 NLN
服务器则向客户端发送回在线的好友及其相应的状态.
ILN 7 NLN btxxxe@hotmail.com nick (NLN:Now online 即当前在线)
ILN 7 AWY wmxxe@hotmail.com mike (AWY:Away 即离开)
ILN 7 BSY tehpxxp@hotmail.com jerry (BSY:Busy 即忙碌)
MSG Hotmail Hotmail 223
MIME-Version:1.0
Content-Type:text/x-msmsgsinitialemailnotification;charset=UTF-8
Inbox-Unread:293
Folders-Unread
Inbox-URL:/cgi-bin/HoTMaiL
Folders-URL:/cgi-bin/folders
Post-URL:http://www.hotmail.com
向服务器发送的下一个命令是和当前使用的客户端的版本相关的.客户端向服务器发送它的版本号和所在机器的信息像*作系统和其配置等
CVR 8 0x0409 win 4.10 i386 MSMSGS 4.5.0127 MSMSGS
0x0409 win4.10 i386 指出客户端当前的运行环境是win98,使用的是Intel的微处理器.
MSMSGS 4.5.0127 MSMSGS 指出msmsgs.exe的版本号
服务器回应提供
下载最新版本及一些其它的信息的地址\
CVR 8 4.5.0127 4.5.0127 1.0.0863
http://download.microsoft.com/do /en-us/mmssetup.exe
http://messenger.microsoft.com
这个CVR命令的发送并不是必须的,无论此命令是否发送,MSN协议都可以正确的工作.
为了获得我们的好友列表,我们可以发送如下命令
LST 9 RL
服务器将相应发送回“反向列表”,此反向列表为当你在线时,可以看到你并能向你发送即时消息的用户列表.你也可以使用 LST 9 FL命令向服务器请求“正向列表”.此正向列表包括你加入到好友列表中的所有好友.服务器所做的回应如下
LST 9 RL 69 1 19 venky_dude@hotmail.com venkat
LST 9 RL 69 2 19 puxxxxx@hotmail.com puja
LST 9 RL 69 3 19 vancxxxx@hotmail.com ramachandran
LST 9 RL 69 4 19 moxxxxx@hotmail.com chandramouli
LST 9 RL 69 6 19 v_n_xxxx@hotmail.com Narakatesh
………………….
LST 9 RL 69 19 19 puneetagarxxx@hotmail.com puneet
*一旦有好友上线时,服务器(NS)将向我们发送如下命令
NLN 10 NLN deaxxx@hotmail.com Venkatesh
相反,如果有好友下线时,服务器将向我们发送如下命令
FLN 10 FLN deaxxx@hotmail.com Venkatesh
在MSNP7中,MSN引入了一个新的口令认证机制.MSN服务器向用户发送一个口令钥,用户必须正确的认证此口令钥才能使此过程继续进行下去.
CHL 0 20881396011366812350
客户端必须向服务器发送一MD5,此MD5为以上的“杂乱信息”后附加上字符串“Q1P7W2E4J9R8U3S5”.因此最终向服务器发送的MD5字符串为
20881396011366812350Q1P7W2E4J9R8U3S5
因此客户端的回应如下
QRY 18 msmsgs@msnmsgr.com 32
0212eaad0876afb8505859ca75d21a78
此处18为实验ID,用你的实际实验ID代替18.
如果认证正确,服务器将做出如下回应
QRY 18
在MSN里的即时通讯是基于session的。想进行对话的两个人必须在session模式当中。除非我们同其他用户开始一个聊天session,否则我们是不能发送/接受信息的。
基本上有两种途径可以使一个用户处于一个聊天session中
.1 用户向另一个用户发送一个聊天session请求
2 用户接收从另一个用户那里发送来的聊天session请求
接下来将分别详细介绍这两种途径
用户向另一个用户发送一个聊天session请求
客户端(用户)向服务器发送一个命令,以获取接线总机(SwitchBoard)服务器的地址.所有的即时通讯交谈都必须通过接线总机服务器实现。
XFR9 SB
此接线总机服务器返回此服务器的ip地址,连接端口,和一个CKI杂列。CKI 是一个安全包,用户必须使用此CKI杂列连接上接线总机服务器。
XFR9 SB 64.4.13.88:1863 CKI1989487642.2070896604
现在这次我们将向接线总机服务器进行一次新的连接。而且我们上次对MSN即时通服务器的连接必须要保持,否则我们将会登出。
在我们连接上接线总机服务器之后,我