MSN机器人程序的设计与实现毕业设计Word下载.docx

上传人:b****5 文档编号:8435109 上传时间:2023-05-11 格式:DOCX 页数:24 大小:316.67KB
下载 相关 举报
MSN机器人程序的设计与实现毕业设计Word下载.docx_第1页
第1页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第2页
第2页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第3页
第3页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第4页
第4页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第5页
第5页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第6页
第6页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第7页
第7页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第8页
第8页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第9页
第9页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第10页
第10页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第11页
第11页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第12页
第12页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第13页
第13页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第14页
第14页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第15页
第15页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第16页
第16页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第17页
第17页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第18页
第18页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第19页
第19页 / 共24页
MSN机器人程序的设计与实现毕业设计Word下载.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MSN机器人程序的设计与实现毕业设计Word下载.docx

《MSN机器人程序的设计与实现毕业设计Word下载.docx》由会员分享,可在线阅读,更多相关《MSN机器人程序的设计与实现毕业设计Word下载.docx(24页珍藏版)》请在冰点文库上搜索。

MSN机器人程序的设计与实现毕业设计Word下载.docx

ChatRobot;

MSN;

ChatSoftware

第一章绪论

1.1研究背景

自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。

如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。

现在已有的聊天软件不胜枚举,流行的主要有MSNMessenger、QQ等。

MSNMessenger来自于软件巨头微软,其实力当然不容小觑。

目前最新版本为MSN9,能够实现文本、手写、语音、视频等多种沟通方式,可以预见在不久的将来,聊天软件将成为人们通过因特网相互联系和娱乐的主要平台。

由于MSNMessenger协议是公开的,因此第三方软件开发者能通过协议写出自己的程序与网络交互,于是MSN机器人应运而生。

MSN机器人是以MSN联系人的形式出现的,只要你添加相关机器人的MSN帐号,就可以像与真人聊天一样与机器人聊天,并可查询地图、股票、天气预报、电视节目等信息。

1.2MSN机器人的发展现状

MSN机器人是一项能够带给用户良好信息体验的技术产品――基于人工智能技术的开发、研究和应用,为成千上万用户提供新颖实用的网络服务。

MSN机器人技术日渐成熟,其中著名的如赢思软件公司开发的小I机器人。

2004年赢思先后在全球知名的即时通讯(IM)平台MSN、“腾讯QQ”及YahooMessenger上推出了小I智能机器人;

小I以其强大的聊天功能和各类资讯信息的提供一时间成为各大IM平台的新宠,用户量突破800万,在人工智能机器人及信息服务领域获得了前所未有的突破。

2006年2月,凭借在机器人领域多年的积累以及强大的技术实力,赢思软件成为微软全球战略合作伙伴及微软官方机器人平台,携手微软打造最强大的机器人应用平台。

目前公司已推出小I聊天、MSN群、小I地图、小I天气、小I收视指南、小I问答等多项应用,提供了多种个性化功能和服务,性能稳定,应用广泛。

1.3本文工作

本文将重点分析MSNMessenger协议里的登陆过程和消息发送部分,并用其设计并制作一款MSN客户端,然后在此基础上完成对MSN机器人系统的设计和实现,以达到研究聊天机器人运作原理的目的。

具体的章节安排如下:

第一章研究背景及当前技术的发展状况

第二章MSN协议分析

第三章MSN机器人系统设计

第四章MSN机器人系统实现

第五章总结与展望

2.1MSN登录过程

1.TCP连接到(207.46.104.20)上的1863端口,发送如下指令:

VER1MSNP9MSNP8CVR0\r\n

服务器返回:

VER命令是用来和服务器协商MSN客户端所使用的版本信息,其中1代表TrID是命令序号,后面是所支持协议的版本,必须以CVR0结尾。

2.客户端发送CVR命令到服务器声明客户端环境:

CVR20x0804winnt5.0i386MSNMSGR6.0.0602MSMSGSyxu68@\r\n

CVR命令有一个TrID和另外8个参数。

第一个参数是客户端语言的LocalID,简体中文为0x0804,美国英语为0x0409,台湾为0x0404,日本为0x0411,韩国为0x0412;

第二个参数为操作系统类型,winnt代表NT系列,Win代表win9x系列;

第三个参数为操作系统版本号,5.0表示Windows2000,5.1表示WindowsXP,4.10表示Windows98;

第四个参数为计算机体系结构,i386表示Intel386以上机型;

第五个参数为客户端名称,MSNMSGR表示MSNMessenger客户端;

第六个参数表示客户端版本号,当前为6.0.0602;

第七个参数必须为MSMSGS;

第八个参数为登录名(邮件地址)。

CVR26.0.06026.0.06026.0.0268

服务器也返回CVR但是它只有6个参数。

第一个参数为TrID;

第二个参数为推荐您使用的客户端版本号,如果为1.0.0000,表示您的客户端信息不可识别;

第三个参数和第二个参数相同;

第四个参数表示前一版本的版本号;

第五个参数为下载推荐版本的URL地址;

第六个参数为获取推荐客户端信息的URL地址。

3.客户端发送USR命令说明身份:

USR3TWNIyxu68@\r\n

USR命令有4个参数,第一个参数为TrID;

第二个参数为身份验证的系统代号,以前可以使用MD5,现在必须使用TWN;

第三个参数必须是字母I,表示身份验证开始;

第四个参数是要登录服务器的帐号名称。

服务器返回XFR命令:

XFR3NS207.46.106.72:

18630207.46.104.20:

1863\r\n

XFR命令有5个参数,第一个参数为TrID;

第二个参数为NS表示转移到一个notification服务器;

第三个参数为notification服务器的IP地址和端口(以冒号间隔,一般是1863但不绝对);

第四个参数在MSNP2以后都必须是0;

第五个参数为当前连接的服务器IP和端口。

4.关闭连接,客户端终止到的连接。

说明:

MSNP8MSNP9中不再使用MD5的作身份验证的方式,MD5的方式只在MSNP7及前面的版本中实现,MSNP8、MSN9需要以新的方式执行也就是使用USR3TWNIyxu68@\r\n命令。

5.客户端连接到上面给定的notification服务器指定端口(207.46.106.72:

1863),首先按照上面的发送一些命令如下:

客户端发送:

VER4MSNP9MSNP8CVR0\r\n

CVR50x0804winnt5.0i386MSNMSGR6.0.0602MSMSGSyxu68@\r\n

CVR56.0.06026.0.06026.0.0268

USR6TWNIyxu68@\r\n

在此服务器不回复XFR命令,而是回复USR命令。

USR6TWNSlc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1065400856,kpp=1,kv=5,ver=2.1.0173.1,tpf=15920bfbfabbe0badb47790dc51a54fa\r\n

回应的usr命令前两个参数个发送的usr命令相同,第三个参数使用字母S代替I表示后面开始身份验证过程,其中cttpf是变化的,其他不变。

6.使用SSL协议连接到或其它服务器的443端口。

登录名后缀为@、@、@的客户端使用:

443;

登录名后缀为@的使用:

其他使用:

443。

建议使用如下方法确定身份验证服务器:

SSL连接到443端口,发送如下命令:

GET/rdr/pprdr.aspHTTP/1.0\r\n

\r\n

服务器将回应如下:

HTTP/1.1200OK\r\n

Server:

Microsoft-IIS/5.0\r\n

Date:

Sun,27Sep200311:

57:

47GMT\r\n

Connection:

close\r\n

PassportURLs:

DARealm=Passport.Net,DALogin=

Content-Length:

0\r\n

Content-Type:

text/html\r\n

Cache-control:

private\r\n

获取回应中的PassportURLs字段中DALogin部分(斜体部分),即可得到身份验证地址,注意该连接实际上需要在前面加上https:

//,表示要使用HTTPSSL协议获取相关信息。

是需要连接的服务器,用SSL连接到该服务器443端口,即可进行下面的操作。

7.在SSL连接中发送如下HTTP请求:

GET/login2.srfHTTP/1.1\r\n

Authorization:

Passport1.4OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=yxu68@,pwd=******,lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1065400856,kpp=1,kv=5,ver=2.1.0173.1,tpf=15920bfbfabbe0badb47790dc51a54fa\r\n

User-Agent:

MSMSGS\r\n

Host:

\r\n

Keep-Alive\r\n

Cache-Control:

no-cache\r\n

Authorization后面跟内容中的“sign-in=”后面为登录的登录名称,“pwd=”后面为登录名对应的密码,其后内容(斜体部分)为前面服务器返回的usr命令后面部分内容。

如果成功服务器将返回如下信息:

…..

Authentication-Info:

Passport1.4da-status=success,tname=MSPAuth,tname=MSPProf,tname=MSPSec,from-PP='

t=…'

ru=\r\n

其中最重要的是Authentication-Info字段返回的值,取得“from-pp=”后面单引号中的部分内容(上面斜体下划线部分)。

如果失败服务器返回如下信息(如果失败需要连接其他服务器尝试):

HTTP/1.1401Unauthorized\r\n

58:

15GMT\r\n

PPServer:

H:

LAWPPIIS6B077\r\n

Expires:

Mon,20Oct200307:

14GMT\r\n

cachecontrol:

no-store\r\n

Pragma:

P3P:

CP="

DSPCUROTPiINDOTRiONLFIN"

PassportConfig:

ConfigVersion=11\r\n

WWW-Authenticate:

Passport1.4da-status=failed,srealm=Passport.NET,ts=-3,prompt,cburl=

390\r\n

同时服务器有可能将客户端重定向到其他地方,这是将返回如下信息:

HTTP/1.1302Found\r\n

32GMT\r\n

LAWPPLOG5C006\r\n

Passport1.4da-status=redir\r\n

Location:

其中

8.关闭SSL连接,回到notification服务器连接上,向服务器再次发送usr命令:

USR7TWNSt=5OyHvVtsqDmntb4B4z*UOKIkjWzyERUzYHRnO7bmd*!

4LS4w!

JLRB95JjopamqbRz1APVAq*hqeYScQIt*Se2lyA$$&

p=5ArrhL7LNEzouoqpC9kIoeqvBm4wzKnISD3QzZOxOIcz6iJ5w33IQJZ3tQjq9*4z*l6MQ6y6xYtth7QdEQb*Z1kRHUH6Pm6sJsUXfbfNbrhdu5oOJzdIjNXGVSC5FfheoGrHtrxMp1ZgMgeDcLY0yx6iYoO!

0EfXlpQ24avzKIQDA7ME7pLMFTKtVp5NJHdBI75Szr3P4d37Y$

命令含义和前面一样,注意的是第三个参数为S,第四个参数就是上面SSL连接中获取的Authentication-Info字段中from-pp部分。

如果密码正确notification服务器将返回usr命令,ok作为第二个参数。

USR7OKyxu68@\302\240\345\276\220\346\263\26310\r\n

其中第三个参数是用户登录名;

第四个参数是用户的昵称(UTF-8值);

第五个代表身份验证是否通过,1表示true;

第六个如果是MSNP7以上为0,其他为1。

其他将返回一些错误。

9.同步本地联系人列表

客户端向服务器发送本地保存的联系人列表版本号:

SYN80\r\n

第二个参数就是当前的联系人列表的版本号,0表示本地没有任何联系人的信息。

服务器回应客户端服务器上联系人列表的版本号:

SYN81056685\r\n

第二个参数是服务器上当前联系人列表的版本号,如果客户端的版本号和服务器上的版本号相同,则没有后面的两个参数;

第三个参数为期望的LST命令个数;

第四个参数为期望的LSG命令个数。

10.取得在线人员名单,发送上线通知。

客户端向服务器发送如下命令取得在线人员名单:

CHG9NLN268435492\r\n

CHG命令第二个参数为NLN时是取得在线人员名单,并通知他们客户上线了;

第三个参数为一个数值串,目前不明白其作用,但是版本不同,其值不同。

简体中文MSNMessager6.0.0602+Win2000下是268435492,英文版是268435508,繁体中文268435500。

用途更改用户在线状态,具体请参考更改用户状态。

以上完成所有登录过程。

2.2即时消息发送接收过程

1.客户端分别完成登录过程以后,由会话发起方(本例中为yxu68@)向其Notification服务器发送XFR命令:

XFR12SB\r\n

XFR作用是向Notification服务器获取Switchboard服务器IP地址和端口号。

第一个参数是TrID,第二个参数是Switchboard的缩写SB。

注意和登录过程中的XFR命令中的区别,登录过程是NS,代表是Notification服务器。

XFR12SB207.46.108.79:

1863CKI17334300.1065769901.10583\r\n

Notification服务器(207.46.106.22)回复XFR命令如下:

服务器回复的XFR命令第一个参数是TrID;

第二个参数是SB;

第三个参数是Switchboard服务器的IP地址和端口号(用冒号间隔),一般端口号都是1863,但是不绝对;

第四个参数是认证的方式,目前使用CKI;

第五个参数客户端将要发送的Switchboard服务器的认证字符串,需要保留。

如果没有初始化客户端的状态或者状态为HDN,这个服务器将不返回XFR命令,而是返回913错误91312\r\n。

2.客户端保持到Notification服务器的连接,同时连接到上面提供的Switchboard服务器(207.46.108.79)指定端口上,发送如下命令:

USR1yxu68@17334300.1065769901.10583\r\n

USR命令第一个参数是TrID,注意这里的TrID是Switchboard服务器上重新设置的一个TrID,又是从1开始,小于4294967295(2^32-1)的整数,故而这里需要在添加一个计数器,同时即时再次连接其他的Switchboard服务器,这个计数器也需要保持(不从1开始计数,接着上次开始计数);

第二个参数是客户端的登录用户名;

第三个参数是上面Notification服务器服务器返回XFR命令中的认证字符串。

Switchboard服务器(207.46.108.79)返回如下命令:

USR1OKyxu68@\302\240\345\276\220\346\263\263\r\n

该USR命令最后一个参数是客户端的昵称。

3.客户端向Switchboard服务器(207.46.108.79)发送如下命令:

CAL2taogx@\r\n

CAL命令第一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2