转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
用VB编写你自己的MSN即时通讯软件2         ★★★★

用VB编写你自己的MSN即时通讯软件2

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1183 更新时间:2009/4/23 15:03:33

 

  向服务器发送的下一个命令是和当前使用的客户端的版本相关的.客户端向服务器发送它的版本号和所在机器的信息像*作系统和其配置等
  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即时通服务器的连接必须要保持,否则我们将会登出。

  在我们连接上接线总机服务器之后,我们将向此接线总机服务器发送以下命令:
  USR 1
venky_dude@hotmail.com 989487642.2070896604
  如果我们发送的这个CKI杂列正确的话,接线服务器将会返回
  USR 1 OK
venky_dude@hotmail.com venkat

  当以上做完之后,接下来这个用户要做的就是要把另一个用户”叫到”此聊天session中了,这可以通过发送下面的命令完成
  CAL 2
deadxxx@hotmail.com
  服务器将会向此用户回应一个session号,同时也会将此session号发送给另一个用户。如果另一个用户准备好聊天,并向做出回应时,服务器将向我们发送如下命令

  JOI deadlee@hotmail.com Venkatesh
  这条命令表示另一个用户加入了聊天当中,我们现在可以接受和发送信息了


  用户接收从另一个用户那里发送来的聊天session请求
  当我们被一个用户邀请到一个聊天session中时,认证服务器将向我们发送如下的信息.
  RNG 11742066 64.4.13.74:1863 CKI 989495494.750408580
deaxxxx@hotmail.com Venkatesh
  上面的命令包含了session号,接线服务器的ip地址,端口,CKI杂列及向我们发出交谈请求的用户信息。

  现在我们将向接线服务器进行一次新的连接。同样我们上次对MSN即时通服务器的连接必须要保持,否则我们将会登出。

  我们连接上接线服务器,并且发送如下命令
  ANS 1
venky_dude@hotmail.com 989495494.750408580 11742066
  上面的命令包含了我们的登陆名,我们接收到的CKI杂列和session号。

  服务器将回应如下信息
  IRO 1 1 1
deaxxxx@hotmail.com Venkatesh 和 ANS 1 OK
  我们现在就可以发送和接收信息了。

  在我们发送和接收信息之前,让我们了解一下信息是如何创建的。
  我们发送信息时,将首先建立一个头信息如下所示
  MIME-Version: 1.0
  Content-Type: text/plain; charset=UTF-8
  X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22

  然后使用如下的方式发送
  MSG2 N137 MIME-Version: 1.0
  Content-Type: text/plain; charset=UTF-8
  X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22

  hello
  其中2是测试号,我们每发送一次信息,此号就会随着增加。137是指我们发送信息的长度。在上面的例子中就是头信息和我们发送的信息”hello”的长度。

  我们发送的信息和上面的例子是差不多的。

  下面是我们接受到的一个信息的例子
  MSG
deaxxxx@hotmail.com Venkatesh 137
  MIME-Version: 1.0
  Content-Type: text/plain; charset=UTF-8
  X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22

  hello

  当另一用户正在输入信息时,我们会收到如下信息
  MSG
deaxxxx@hotmail.com Venkatesh 100
  MIME-Version: 1.0
  Content-Type: text/x-msmsgscontrol
  TypingUser:
deaxxxx@hotmail.com

  我猜你们对如何编写出自己的MSN即时通讯软件已经有了大致的了解。我将会在以后对MSN的通讯协议继续进行补充,增添一些附加的功能比如增加/删除拥护,重命名,文件传输及语音聊天。

参考资料
  微软发布的MSN的通讯协议
  
http://www.tlsecurity.net/Textwa ... ger-protocol-00.txt
  MD5官方网站
  
http://userpages.umbc.edu/~mabzug1/cs/md5/md5.htm


[聊天工具]四大更新 Windows Live Msn 8.1评测  [聊天工具]MSN + Yahoo Messenger整合很快完工_工具软件
[聊天工具]MSN Messenger占领世界市场61%的份额_联络工具_MS…  [聊天工具]删除“我的电脑”中的MSN共享文件夹
[聊天工具]通过网易POPO与MSN好友隐身聊天  [聊天工具]MSN Messenger新增两个聊天机器人__天极Yesky
[聊天工具]MSN Messenger 8 Beta简单试用报告__天极Yesky  [聊天工具]MSN Messenger能轻松找到网络故障原因__天极Yesky
[聊天工具]MSN Messenger8 超酷头像任你选__天极Yesky  [聊天工具]MSN Messenger 8.0 Beta多图欣赏__天极Yesky
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台