文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
网站首页 软件下载
数码学院 网络学院
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院程序开发数据结构MSN Messenger协议简介
精品广告
推荐TOP10
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
·正则表达式从入门到精通
·SQL Server不能启动的常见故障
·Windows应用程序设计的基本术语
·软件本地化与汉化
·Windows中断编程
·windows nt 4.0中文版的开机过程
阅读TOP10
·原始套接字透析之Raw Socket基础
·Windows中断编程
·Solaris 10 安装及SVC管理及X及Vmware及其它可能遇到的一些问题
·DCOM揭秘之六
·逆向思维 《魔兽世界》封包分析
·黑客之旅――原始套接字透析之前言
·使用图形编辑框架创建基于 Eclipse 的应用程序
·微软的秘密:微软公司软件开发模式简介
·病毒编程技术之恶意代码的亲密接触
·网游外挂编写完全攻略
·正则表达式从入门到精通
·DCOM揭秘之三
·四种网络游戏外挂的设计方法
·用CVSNT与WINCVS实现CVS的架设
·分布式编程必须知道的几个基本概念
·BPEL的基本活动介绍
·DB2数据库归档日志的管理方案
·Web开发时碰到的问题以及心得经验
·饺子馆的物流故事之二——供应链视角下的缺货及品类管理
·兵之利器 软件开发辅助工具纵览

MSN Messenger协议简介

日期:2007年7月23日 作者: 查看:[大字体 中字体 小字体]


前 言

  MSN Messenger 是Microsoft开发的聊天工具,目前在国内拥有很大的用户群。使用MSN Messenger可以与他人进行文字聊天,语音对话,视频会议等即时交流,还可以通过此软件来查看联系人是否联机等。该软件的最新版本是6.1。

  1999年,Microsoft向IETF提交了一份"MSN Messenger Service 1.0 Protocol"草案,这是最初版本的MSN Messenger协议。在以后几年,该公司不再公开有关MSN Messenger协议的升级、修改细节的官方文档。但无论是开发第三方的聊天客户端软件(如Gaim, MyIM等),还是做协议分析,必须对其通信协议有深入了解。正因为如此,有一些民间人士对这些协议开展了研究。

  当我们还在感叹"这世界,变化快"的时候,MSN Messenger的协议已经到了第10版,简称MSNP10,对应于MSN Messenger 6.1。MSN Messenger 6.0则使用MSNP9。现在Microsoft强迫MSN Messenger用户升级到6.0或6.1版,因为服务器对MSNP8以下的版本不再支持。本文及后续文章所描述的MSN Messenger协议主要针对MSNP9/MSNP10。

  1. 连 接

  MSN Messenger协议建立在TCP/IP之上。除了文件传输和语音聊天是直接的"点对点"通信之外,其它所有的情形全部通过服务器进行。

  在逻辑上,一共有三种类型的服务器,各司其职:

  • 派遣服务器(Dispatch Server, DS) - 客户端最初连接的服务器。负责给客户端分配合适的通知服务器。域名是messenger.hotmail.com,标准服务端口是1863。完成派遣任务后,切断TCP连接。

  • 通知服务器(Notification Server, NS) - 客户端需要一直保持连接的服务器。很多任务要在这个会话内完成,包括登录、改变状态、获取用户列表、修改用户信息、发起聊天、接受呼叫、邮件通知、退出等等。服务端口由派遣服务器指定,通常也是1863。

  • 接线服务器(Switchboard Server, SS) - 客户端之间聊天使用的中转服务器。每开一个聊天窗口,客户端和服务器就建立一个TCP会话。当客户端之间需要进行文件传输或语音聊天时,发送系统消息,建立"点对点"会话通道(可能转为使用UDP)。服务端口通常也是1863。"点对点" 通信使用的端口由客户端自动协商决定,如文件传输通常使用6891端口。

      2. 命 令

      MSN Messenger命令使用纯ASCII码。对非ASCII码字符使用URL编码。命令的语法是
    XXX[<SP>TrID<SP>PARAM1<SP>PARAM2…]<CRLF>
      其中,<SP>是空白字符,<CRLF>是回车换行,XXX是一个3字符的命令串,TrID是一个流水号,PARAMx是参数,[ ]内是可选项。最简单的命令没有流水号和参数。为了方便起见,下面讨论时用" "代表<SP>,"\r\n"代表<CRLF>,"\x??"代表一个值为0x??字节。红色表示由客户端发出,蓝色表示由服务器发出。一个MSN Messenger命令的例子如下:
    USR 18 TWN I example@hotmail.com\r\n
      3. 错 误

      无论是由于客户端发出的命令无效,参数无效,还是其他什么原因,服务器可以返回一个错误。格式为
    XXX[<SP>TrID]<CRLF>
      其中,XXX是一个3位数字的串。如
    ADD 21 AL non_existent@passport.com non_existent@passport.com\r\n 
    205 21\r\n
      上例中,non_existent@passport.com是一个不存在的账号。

      4. 消 息

      MSN Messenger消息符合MIME 1.0标准,由消息头与消息体组成。通常使用UTF-8编码,消息头中也需要URL编码格式,消息体则直接用二进制数据。

    [1] [2] [3] [4] [5] [6] 下一页 

    上一篇:已知OO世界中函数式编程实践和小结

    下一篇:编写QQ外挂插件的原理和方法


  • 相关软件: 相关文章:
    ·撕页广告代码及简介
    ·APE变成高品质MP3音乐 转换工具介绍
    ·计算机缩写术语完全介绍
    ·好东西介绍,直接用 java 命令行动态生成jpg文件
    ·常用图片格式介绍
    ·详细介绍ORACLE sqlplus命令
    ·信息加密技术基本介绍
    ·静态分析技术-IDA Pro简介
    ·求职面试自我介绍一分钟
    ·所有的文件格式介绍

    特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
    [打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
    首页 | 本站声明 | 下载帮助 | 发布软件 |
    中文版权所有:ABC学院 浙ICP备05000717号