版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本 科 生生 毕 业业 论 文文(设 计计)中文题目: MSN机机器人程序序的设计与实现现 外文题目: The Desiign aand IImpleementtatioon off MSNN Robott Proogramm 摘 要随着网络的的兴起,越越来越多的的人依赖网网络,因此此聊天机器器人应运而而生。聊天天机器人是是以联系人人的形式出出现的,只只要你添加加相关机器器人的账号,就可可以像与真真人聊天一一样与机器器人聊天,并并可查询地地图、股票票、天气预预报、电视视节目等信信息。目前前,知名的聊天天机器人有有:一枝独秀秀的MSNN机器人小小i、专业业的MSNN股票机器器人牛牛,国国内则如
2、HYPERLINK / 腾腾讯的QQQ机器人小小Q,但在在功能上和和MSN的的系列机器器人相比有有一定差距距。本文详细分分析了MSN的通通信协议与工作作流程,并根据分析析MSN登登录、消息息发送与接接收流程,设计和实现了简单的MSN客户端程序。该客户端允许在一台电脑上同时登录多个MSN账号,并能与多个MSN用户进行聊天。同时,本文还充分研究了聊天机器人的工作原理,并设计和实现了MSN聊天机器人系统。关键字:聊聊天机器人人;MSN;聊天软件Abstrract Withh thee risse off nettworkks, mmore and moree peoople relyy on the
3、 netwwork, so the cchat roboot appeaared. Chatt robbot bbasedd on the formm of frieends, if you have aadded the roboots acccountt, yoou caan chhat wwith the roboot juust llike a reeal ppersoon, aand ccan allso qqueryy mapps, sstockks, wweathher, teleevisiion pprogrrams and otheer innformmatioon.This
4、 docuumentt fullly sttudiees the MSN Messsengeer prrotoccol, and uuses its landding prinnciplles aand mmessaage ssend prinnciplles tto deesignn andd achhievee a MMSN ccliennt. TThe ccliennt caan loogin a nuumberr of accoount at tthe ssame timee in one compputerr, andd staart cchattting withh difffer
5、eent ffriennd. AAt thhe saame ttime, thiis doocumeent alsoo fullly sstudiied tthe ooperaationn priincipple oof thhe chhat rrobott, annd deesignn andd achhievees the MSN chatt robbot ssysteem baased on tthe MMSN ccliennt.Keywoords: Chat Robott; MSNN; Chatt Softwware目 录TOC o 1-2 h z u HYPERLINK l _Toc
6、231720124 第一章 绪绪论 PAGEREF _Toc231720124 h 1 HYPERLINK l _Toc231720125 1.1 研研究背景 PAGEREF _Toc231720125 h 1 HYPERLINK l _Toc231720126 1.2 MMSN机器器人的发展展现状 PAGEREF _Toc231720126 h 1 HYPERLINK l _Toc231720127 1.3 本本文工作 PAGEREF _Toc231720127 h 2 HYPERLINK l _Toc231720128 第二章 MMSN协议议分析 PAGEREF _Toc231720128
7、 h 3 HYPERLINK l _Toc231720129 2.1 MSN登登录过程 PAGEREF _Toc231720129 h 3 HYPERLINK l _Toc231720130 2.2 即时消息息发送接收收过程 PAGEREF _Toc231720130 h 11 HYPERLINK l _Toc231720131 2.3 MSN 连接保持持方法 PAGEREF _Toc231720131 h 15 HYPERLINK l _Toc231720132 第三章 MMSN机器器人系统设设计 PAGEREF _Toc231720132 h 17 HYPERLINK l _Toc2317
8、20133 3.1 系系统结构 PAGEREF _Toc231720133 h 17 HYPERLINK l _Toc231720134 3.2 系系统方案选选取 PAGEREF _Toc231720134 h 18 HYPERLINK l _Toc231720135 3.3 系系统难点及及相应解决决方案 PAGEREF _Toc231720135 h 18 HYPERLINK l _Toc231720136 3.4 软软件结构 PAGEREF _Toc231720136 h 18 HYPERLINK l _Toc231720137 第四章 MMSN机器器人系统实实现 PAGEREF _Toc
9、231720137 h 21 HYPERLINK l _Toc231720138 4.1 系系统实现部部分 PAGEREF _Toc231720138 h 21 HYPERLINK l _Toc231720139 4.2 系系统测试 PAGEREF _Toc231720139 h 26 HYPERLINK l _Toc231720140 第五章 总总结与展望望 PAGEREF _Toc231720140 h 29 HYPERLINK l _Toc231720141 5.1 全全文总结 PAGEREF _Toc231720141 h 29 HYPERLINK l _Toc231720142 5.
10、2 工工作展望 PAGEREF _Toc231720142 h 29 HYPERLINK l _Toc231720143 参考文献 PAGEREF _Toc231720143 h 30 HYPERLINK l _Toc231720144 致 谢 PAGEREF _Toc231720144 h 31第一章 绪绪论1.1 研研究背景自从上世纪纪中叶第一一台计算机机诞生以来来,计算机机越来越走走进人们的的生活当中中,特别是是随着计算算机网络的的发展,把把全世界的的人们紧密密的联系在在一起,大大大的扩展展了计算机机的功能,人人们越来越越离不开计计算机了。如今,作作为网络应应用之一的的聊天工具具,越来越
11、越受到人们们的欢迎和和重视。现现在已有的的聊天软件件不胜枚举举,流行的的主要有MMSN MMesseengerr、QQ等。MSN MMesseengerr来自于软软件巨头微微软,其实力当当然不容小小觑。目前最新新版本为MMSN9,能够实现 HYPERLINK javascript:void(0); 文本、手写、语音、视频等多种沟通方式,可以预见在不久的将来,聊天软件将成为人们通过因特网相互联系和娱乐的主要平台。由于MSNN Messsengger协议议是公开的的,因此第三方方软件开发发者能通过过协议写出自己的程程序与网络络交互,于是MSNN机器人应应运而生。MSN机机器人是以以MSN联联系人的
12、形形式出现的的,只要你你添加相关关机器人的的MSN帐帐号,就可可以像与真真人聊天一一样与机器器人聊天,并并可查询地地图、股票票、天气预预报、电视视节目等信信息。1.2 MMSN机器器人的发展展现状MSN机器器人是一项项能够带给给用户良好好信息体验验的技术产产品基于人人工智能技技术的开发发、研究和和应用,为为成千上万万用户提供供新颖实用用的网络服服务。MSSN机器人人技术日渐渐成熟,其其中著名的的如赢思软软件公司开开发的小II机器人。2004年年赢思先后后在全球知知名的即时时通讯(IIM)平台台MSN、“腾讯QQ”及Yahooo Meessennger上上推出了小小I智能机器器人;小I以其强大大
13、的聊天功功能和各类类资讯信息息的提供一一时间成为为各大IMM平台的新新宠,用户户量突破8800万,在在人工智能能机器人及及信息服务务领域获得得了前所未未有的突破破。2006年年2月,凭借借在机器人人领域多年年的积累以以及强大的的技术实力力,赢思软件件成为微软软全球战略略合作伙伴伴及微软官官方机器人人平台,携携手微软打打造最强大大的机器人人应用平台台。目前公公司已推出出小I聊天、MSSN群、小小I地图、小小I天气、小小I收视指南南、小I问答等多多项应用,提提供了多种种个性化功功能和服务务,性能稳稳定,应用用广泛。1.3 本本文工作本文将重点点分析MSSN Meessennger协协议里的登登陆过
14、程和和消息发送送部分,并并用其设计计并制作一一款MSNN客户端,然后在此基础上完成对MSN机器人系统的设计和实现,以达到研究聊天机器人运作原理的目的。具体的章节安排如下:第一章 研研究背景及及当前技术术的发展状状况第二章 MMSN协议议分析第三章 MMSN机器器人系统设设计第四章 MMSN机器器人系统实实现第五章 总总结与展望望第二章 MMSN协议议分析2.1 MSN登录录过程1TCPP连接到(207.46.1104.220)上的的18633端口,发发送如下指指令:VER 11 MSNNP9 MMSNP88 CVRR0rn服务器返回回:VER 11 MSNNP9 MMSNP88 CVRR0rn
15、VER命令令是用来和和服务器协协商MSNN客户端所所使用的版版本信息,其其中1代表TrIID是命令令序号,后后面是所支支持协议的的版本,必必须以CVVR0结尾尾。2客户端端发送CVVR命令到到服务器声声明客户端端环境:CVR 22 0 x00804 winnnt 5.0 i3386 MMSNMSSGR 66.0.00602 MSMSSGS yyxu688mrnnCVR 命命令有一个个TrIDD和另外8个参数。第一个参参数是客户户端语言的的Locaal IDD,简体中中文为0 xx08044,美国英英语为0 xx04099,台湾为为0 x04404,日本为0 xx04111,韩国为0 xx041
16、22;第二个个参数为操操作系统类类型,wiinnt代代表NT系列,Wiin代表winn9x系列列;第三个个参数为操操作系统版版本号,55.0表示示Winddows 20000,5.1 表示Winndowss XP,4.100表示Winndowss 98;第四个参参数为计算算机体系结结构,i3386 表表示Inttel 3386以上上机型;第第五个参数数为客户端端名称,MMSNMSSGR表示示MSN Messsengeer客户端端;第六个参参数表示客客户端版本本号,当前前为6.00.06002;第七七个参数必必须为MSSMSGSS;第八个个参数为登登录名(邮邮件地址)。服务器返回回:CVR 22
17、 6.00.06002 6.0.06602 66.0.00268 httpp:/ddownlload.micrrosofft.coom/doownlooad/dd/4/ff/d4ff560dd5-6ddc6-44901-b1499-a56684155561dd7/SeetupDDl.exxe htttp:/messsengger.mmsn.ccom/ccnrn服务器也返返回CVRR但是它只只有6个参数。第一个参参数为TrrID;第第二个参数数为推荐您您使用的客客户端版本本号,如果果为1.00.00000,表示示您的客户户端信息不不可识别;第三个参参数和第二二个参数相相同;第四四个参数表表示前一
18、版版本的版本本号;第五五个参数为为下载推荐荐版本的UURL地址址;第六个个参数为获获取推荐客客户端信息息的URLL地址。3客户端端发送USSR命令说说明身份:USR 33 TWNN I yyxu688mrnnUSR命令令有4个参数,第第一个参数数为TrIID;第二二个参数为为身份验证证的系统代代号,以前前可以使用用MD5,现现在必须使使用TWNN;第三个个参数必须须是字母II,表示身身份验证开开始;第四四个参数是是要登录服服务器的帐帐号名称。服务器返回回XFR命令令:XFR 33 NS 207.46.1106.772:18863 00 200:11863rnXFR命令令有
19、5个参数,第第一个参数数为TrIID;第二二个参数为为NS表示转转移到一个个notiificaationn服务器;第三个参参数为nootifiicatiion服务务器的IPP地址和端端口(以冒冒号间隔,一一般是18863但不不绝对);第四个参参数在MSSNP2以以后都必须须是0;第五个个参数为当当前连接的的服务器IIP和端口口。4messsengger.hhotmaail.ccom关闭闭连接,客客户端终止止到messsengger.hhotmaail.ccom的连连接。说明:MSSNP8 MSNPP9中不再再使用MDD5的作身身份验证的的方式,MMD5的方方式只在MMSNP77及前面的的版本中
20、实实现,MSSNP8、MSN99需要以新新的方式执执行也就是是使用USSR 3 TWN I yxu668hootmaiil.coomrn命令。5客户端端连接到上上面给定的的notiificaationn服务器指指定端口(2:1863),首先按照上面的发送一些命令如下:客户端发送送:VER 44 MSNNP9 MMSNP88 CVRR0rn服务器返回回:VER 44 MSNNP9 MMSNP88 CVRR0rn客户端发送送:CVR 55 0 x00804 winnnt 5.0 i3386 MMSNMSSGR 66.0.00602 MSMSSGS yyxu688mrnn服务器返回回:CVR 55
21、6.00.06002 6.0.06602 66.0.00268 httpp:/ddownlload.micrrosofft.coom/doownlooad/dd/4/ff/d4ff560dd5-6ddc6-44901-b1499-a56684155561dd7/SeetupDDl.exxe htttp:/messsengger.mmsn.ccom/ccnrn客户端发送送:USR 66 TWNN I yyxu688mrnn在此服务器器不回复XXFR命令令,而是回回复USRR命令。USR 66 TWNN S lc=11033,id=5507,ttw=400,fs=1,ruu=htttp%3AA%2
22、F%2Fmeessennger%2Emssn%2EEcom,ct=1106544008556,kppp=1,kv=55,verr=2.11.01773.1,tpf=159220bfbbfabbbe0baadb477790ddc51aa54faarnn回应的ussr命令前前两个参数数个发送的的usr命令令相同,第第三个参数数使用字母母S代替I表示后面面开始身份份验证过程程,其中cct tppf是变化化的,其他他不变。6使用SSSL协议议连接到lloginn.passsporrt.coom或其它它服务器的的443端口口。登录 HYPERLINK mailto:名名后缀为 名后缀缀为mssn.coo
23、m、webbtv.nnet的客客户端使用用:443;登录名后后缀为hhotmaail.ccom的使使用logginneet.paasspoort.ccom:4443;其其他使用lloginn.passsporrt.coom:4443。建议使用用如下方法法确定身份份验证服务务器:SSL连接接到 443端端口,发送送如下命令令:GET /rdr/pprddr.assp HTTTP/11.0rrnrn服务器将回回应如下:HTTP/1.1 200 OKrrnServeer: MMicroosoftt-IISS/5.00rnnDate: Sunn, 277 Sepp 20003 111:57:47 GG
24、MTrrnConneectioon: ccloseernnPasspportUURLs:DAReealm=Passsportt.Nett,DALLoginn=/logiin2.ssrf,DDARegg=htttp:/regiisterr.passsporrt.neet/uiixpwiiz.srrf,Prroperrtiess=htttps:/reggisteer.paasspoort.nnet/eeditpprof.srf,Privvacy=httpp:/conssumerr/priivacyypoliicy.aasp,GGenerralReedir=httpp:/m/reddir.aasp,
25、HHelp=httpp:/mmembeerserrvicees.paasspoort.nnet/mmembeerserrvicee.srff,ConnfigVVersiion=111rnConteent-LLengtth: 00rnnConteent-TType: texxt/httmlrrnCachee-conntroll: prrivatternrn获取回应中中的PasssporrtURLLs字段中中DALoogin部部分(斜体体部分),即即可得到身身份验证地地址,注意意该连接实实际上需要要在前面加加上htttps:/,表示示要使用HHTTP SSL协协议获取相相关信息。logiin.pa
26、asspoort.ccom是需要连接接的服务器器,用SSSL连接到到该服务器器443端口口,即可进进行下面的的操作。7在SSSL连接中中发送如下下HTTPP请求:GET /logiin2.ssrf HHTTP/1.1rnAuthoorizaationn:Passsporrt1.44 OrgVVerb=GET,OrgUURL=hhttp%3A%22F%2FFmesssengeer%2EEmsn%2Ecoom,siign-iin=yxxu68,pwd=*,llc=10033,iid=5007,tww=40,fs=11,ru=httpp%3A%2F%22Fmesssengger%22Emsnn%2E
27、ccom,cct=1006540008566,kppp=1,kkv=5,ver=2.1.01733.1,ttpf=1159200bfbffabbee0baddb477790dcc51a554farnUser-Agennt: MMSMSGGSrnHost: rnConneectioon: KKeep-AlivvernCachee-Conntroll: noo-caccherrnAuthoorizaationn后面跟内内容中的“signn-in=”后面为登登录的登录录名称,“pwd=”后面为登登录名对应应的密码,其其后内容(斜斜体部分)为前面服务器返回的usr命令后面部分内容。如果成功服服务器将返
28、返回如下信信息:HTTP/1.1 200 OKrrnServeer: MMicroosoftt-IISS/5.00rnn.Autheenticcatioon-Innfo:PPasspport11.4daa-staatus=succcess,tnamme=MSSPAutth,tnname=MSPPProf,tnamme=MSSPSecc,froom-PPP=t=,rru=htttp:/messsengger.mmsn.ccomrrnConteent-LLengtth: 00rnnrnrn其中最重要要的是Auuthennticaationn-Inffo字段返返回的值,取取得“fromm-pp=”后
29、面单引引号中的部部分内容(上上面斜体下下划线部分分)。如果失败服服务器返回回如下信息息(如果失失败需要连连接其他服服务器尝试试): HTTP/1.1 401 UnauuthorrizeddrnnServeer: MMicroosoftt-IISS/5.00rnnDate: Sunn, 277 Sepp 20003 111:58:15 GGMTrrnPPSerrver: H: LAWPPPIISS6B0777rnConneectioon: ccloseernnConteent-TType: texxt/httmlrrnExpirres: Mon, 20 Oct 20033 07:57:114 G
30、MMTrnCachee-Conntroll: noo-caccherrncacheeconttrol: no-storrernPragmma: nno-caachernP3P: CP=DSP CUR OTPii INDD OTRRi ONNL FIINrrnPasspportCConfiig: CConfiigVerrsionn=11rnWWW-AAutheenticcate: Passsporrt1.44da-sstatuus=faailedd,sreealm=Passsportt.NETT,ts=-3,ppromppt,cbburl=httpp:/wwww.ppasspportiimage
31、es.coom/XPPPasssporttLogoo.giff,cbttxt=TType%20yoour%220e-mmail%20adddresss%200and%20paasswoord%220corrrecttly.%20Iff%20yyou%220havven%EE2%800%99tt%20rregisstereed%200withh%20.NET%20Paasspoort%22C%200clicck%200the%20Geet%200a%200.NETT%20PPasspport%20liink.rnConteent-LLengtth: 3390rrnrn同时服务器器有可能将将客户端
32、重重定向到其其他地方,这这是将返回回如下信息息:HTTP/1.1 302 FounndrnServeer: MMicroosoftt-IISS/5.00rnnDate: Sunn, 277 Sepp 20003 111:58:32 GGMTrrnPPSerrver: H: LAWPPPLOGG5C0006rnConneectioon: ccloseernnConteent-TType: texxt/httmlrrnExpirres: Sun, 27 Sep 20033 11:57:332 GMMTrnCachee-Conntroll: noo-caccherrncacheeconttrol:
33、no-storrernPragmma: nno-caachernP3P: CP=DSP CUR OTPii INDD OTRRi ONNL FIINrrnAutheenticcatioon-Innfo: Passsportt1.4 da-sstatuus=reedirrnLocattion: htttps:/logginneet.paasspoort.ccom/lloginn2.srrf?lcc=10333rnrn其中htttps:/logginneet.paasspoort.ccom/lloginn2.srrf?lcc=10333就是重重定向的UURL,这这时需要按按照这一步步开始的方方式访
34、问新新的服务器器logiinnett.passsporrt.coom,用loggin2.srf?lc=11033替替代loggin2.srf。8关闭SSSL连接接,回到nnotifficattion服服务器连接接上,向服服务器再次次发送ussr命令:USR 77 TWNN St=5OyHHvVtssqDmnntb4BB4z*UUOKIkkjWzyyERUzzYHRnnO7bmmd*!44LS4ww!JLRRB95JJjopaamqbRRz1APPVAq*hqeYYScQIIt*See2lyAA$&pp=5ArrrhL77LNEzzouoqqpC9kkIoeqqvBm44wzKnnISD33Qz
35、ZOOxOIccz6iJJ5w333IQJZZ3tQjjq9*44z*l66MQ6yy6xYttth7QQdEQbb*Z1kkRHUHH6Pm66sJsUUXfbffNbrhhdu5ooOJzddIjNXXGVSCC5FfhheoGrrHtrxxMp1ZZgMgeeDcLYY0yx66iYoOO!0EffXlpQQ24avvzKIQQDA7MME7pLLMFTKKtVp55NJHddBI755Szr33P4d337Y$命令含义和和前面一样样,注意的的是第三个个参数为SS,第四个个参数就是是上面SSSL连接中中获取的AAutheenticcatioon-Innfo字段段中froom-ppp部分。
36、如果密码正正确nottificcatioon服务器器将返回uusr命令令,ok作为第第二个参数数。USR 77 OK yxu668hootmaiil.coom 33022240334522762220334622632263 11 0rrn其中第三个个参数是用用户登录名名;第四个个参数是用用户的昵称称(UTFF-8值);第五个代代表身份验验证是否通通过,1表示truue;第六六个如果是是MSNPP7以上为为0,其他为为1。其他将将返回一些些错误。9同步本本地联系人人列表客户端向服服务器发送送本地保存存的联系人人列表版本本号:SYN 88 0rrn第二个参数数就是当前前的联系人人列表的版版本号,
37、00表示本地地没有任何何联系人的的信息。服务器回应应客户端服服务器上联联系人列表表的版本号号:SYN 88 10556 688 5rrn第二个参数数是服务器器上当前联联系人列表表的版本号号,如果客客户端的版版本号和服服务器上的的版本号相相同,则没没有后面的的两个参数数;第三个个参数为期期望的LSST命令个个数;第四四个参数为为期望的LLSG命令令个数。10取得得在线人员员名单,发发送上线通通知。客户端向服服务器发送送如下命令令取得在线线人员名单单:CHG 99 NLNN 26884354492 rnCHG命令令第二个参参数为NLLN时是取取得在线人人员名单,并并通知他们们客户上线线了;第三三个
38、参数为为一个数值值串,目前前不明白其其作用,但但是版本不不同,其值值不同。简简体中文MMSN MMessaager 6.0.06022Win22000下下是26884354492,英英文版是226843355088,繁体中中文26884355500。用用途更改用用户在线状状态,具体体请参考更更改用户状状态。以上完成所所有登录过过程。2.2 即时消息息发送接收收过程1. 客户户端分别完完成登录过过程以后,由由会话发起起方(本例例中为yxxu68)向向其Nottificcatioon服务器器发送XFFR命令:XFR 112 SBBrnnXFR作用用是向Nootifiicatiion服务务器获取SS
39、witcchboaard服务务器IP地址和和端口号。第一个参参数是TrrID,第第二个参数数是Swiitchbboardd的缩写SBB。注意和和登录过程程中的XFFR命令中中的区别,登登录过程是是NS,代表表是Nottificcatioon服务器器。XFR 112 SBB 209:11863 CKI 1733343000.106657699901.105883rnNotifficattion服服务器(2207.446.1006.222)回复XFFR命令如如下:服务器回复复的XFRR命令第一一个参数是是TrIDD;第二个个参数是SSB;第三三个参数是是Swittchbooa
40、rd服服务器的IIP地址和和端口号(用用冒号间隔隔),一般般端口号都都是18663,但是是不绝对;第四个参参数是认证证的方式,目目前使用CCKI;第第五个参数数客户端将将要发送的的Swittchbooard服服务器的认认证字符串串,需要保保留。如果果没有初始始化客户端端的状态或或者状态为为HDN,这这个服务器器将不返回回XFR命令令,而是返返回9133错误9133 12rn。2客户端端保持到NNotifficattion服服务器的连连接,同时时连接到上上面提供的的Swittchbooard服服务器(2207.446.1008.799)指定端端口上,发发送如下命命令:USR 11 yxuu68h
41、hotmaail.ccom 1173344300.106557699901.1105833rnnUSR命令令第一个参参数是TrrID,注注意这里的的TrIDD是Swittchbooard服服务器上重重新设置的的一个TrrID,又又是从1开始,小小于429949677295 (2332 - 1)的整整数,故而而这里需要要在添加一一个计数器器,同时即即时再次连连接其他的的Swittchbooard 服务器,这这个计数器器也需要保保持(不从从1开始计数数,接着上上次开始计计数);第第二个参数数是客户端端的登录用用户名;第第三个参数数是上面NNotifficattion服服务器服务务器返回XXFR命令
42、令中的认证证字符串。Switcchboaard服务务器(2007.466.1088.79)返返回如下命命令:USR 11 OK yxu668hootmaiil.coom 33022240334522762220334622632263rrn该USR命命令最后一一个参数是是客户端的的昵称。3客户端端向Swiitchbboardd服务器(2207.446.1008.799)发送如如下命令:CAL 22 taoogx1163.ccomrrnCAL命令令第一个参参数为Swwitchhboarrd服务器器上的TrrID;第第二个参数数为客户端端(yxuu68hhotmaail.ccom)想想交流的联联系
43、人对象象的登录名名称。被邀请的联联系人(m)的Nottificcatioon服务器器(204)向向taoggx1663.coom发出如如下命令:RNG 1173344300 207.46.1108.779:18863 CCKI 1106577699001.211116 HYPERLINK mailto:yxu68 yxu668hootmaiil.coom 30222400345527662200346626332633rnnRNG命令令第一个参参数是本次次会话的SSessiionIDD,需要保保存后面的的命令将多多次用到该该参数;第第二个命令令是本次会会话的Swwitch
44、hboarrd服务器器IP 地址址和端口;第三个参参数是身份份验证类型型,目前为为CKI;第第四个参数数是身份验验证的认证证字符串;第五个是是参数是对对话发起者者的登录名名称;第六六个参数是是对话发起起者的昵称称。客户端连连接Swiitchbboardd服务器(2207.446.1008.799)发送ANNS命令:ANS 11 taoogx1163.ccom 1106577699001.211116 1733343000rnnANS命令令第一个参参数是客户户端taoogx1163.ccom的Swittchbooard服服务器TrrID;第第二个参数数是客户端端登录名称称;第三个个参数是上上面R
45、NGG命令给出出的身份认认证字符串串;第四个个参数是会会话SesssionnID。Switcchboaard服务务器(2007.466.1088.79)向向客户端m返回如下下命令:IRO 11 1 11 yxuu68hhotmaail.ccom 302240345276220346263263rnIRO命令令第一个参参数为TrrID和ANS命令令第一个参参数一样;第二个参参数和第三三个参数分分别为本次次会话中去去掉自身以以外的联系系人序号和和联系人总总数。Switcchboaard服务务器(2007.466.1088.79)向向客户端yyxu688m返回如下下命令:JOI m ddrn4消息的
46、的发送和接接收客户端yxxu68向向Swittchbooard服服务器(2207.446.1008.799)发送MSSG命令发送消消息:MSG 77 N 1165rrnMIME-Verssion: 1.00rnnConteent-TType: texxt/pllain; chaarsett=UTFF-8rrnX-MMSS-IM-Formmat: FN=%E5%AAE%8BB%E4%BD%993; EEF=; CO=00; CSS=86; PF=0rnrnMSG命令令第一个参参数是TrrID(SB 服务务器的);第二个参参数是指示示MSG命令令的类型,发发送消息时时,该参数数将置为NN;第三个个
47、参数为消消息的大小小,这个值值从跟在其其后的rrn后面面开始计算算,这个rn后后面都为消消息内容。Switcchboaard服务务器(2007.466.1088.79)向向客户端m发送MSGG 命令通通知该客户户端有人发发送消息给给该客户端端:MSG yyxu688m 30022440344527762220344626632663 1665rnMIME-Verssion: 1.00rnnConteent-TType: texxt/pllain; chaarsett=UTFF-8rrnX-MMSS-IM-Formmat:FFN=%EE5%AEE%8B%E4%BBD%933; EFF=; CCO
48、=0; CS=86; PF=00rnnrn该MSG命命令第一个个参数是发发送消息的的联系人登登录名称,第第二个参数数是该联系系人的昵称称,第三个个参数值后后面的消息息长度。后后面的消息息内容和结结构和发送送方发送的的内容一样样。5退出会会话任何一方向向Swittchbooard服服务器(2207.446.1008.799)发出OUUT指令,即即可退出会会话:OUTrrn这时Swiitchbboardd服务器(2207.446.1008.799)会向其其他客户端端发送BYYE指令:BYE mrnnBYE 命命令只有一一个参数,就就是退出会会话的联系系人登录名名。只有当会话话中的联系系人都向SSw
49、itcchboaard服务务器发送OOUT指令令,Swiitchbboardd服务器才会会终止会话话。6用户正正在输入消消息。任何一方向向Swittchbooard服服务器(2207.446.1008.799)发出MSSG指令:MSG 330 U 86rrnMIME-Verssion: 1.00rnnConteent-TType: texxt/x-msmssgscoontroolrnTypinngUseer: mrnnrnrn这时Swiitchbboardd服务器(2207.446.1008.799)会向其其他客户端端(yxuu68hhotmaail.ccom)发发送MSGG指令:MSG m
50、dd 86rrnMIME-Verssion: 1.00rnnConteent-TType: texxt/x-msmssgscoontroolrnTypinngUseer: mrnnrnrn2.3 MSN 连接保持持方法客户端piing NNotifficattion服服务器的方方式客户端发送送指令PNNG 给Notiificaationn服务器:PNGrrnNotifficattion服服务器回应应客户端QQNG命令令:QNG 440rnNotifficattion服服务器piing 客客户端的方方式Notifficattion服服务器也会会向客户端端发送CHHL指令查查看客户端端是否断线线,
51、同时验验证客户端端是否被服服务器正确确识别。通通常称之为为challlengges,CHL指令令可以在状状态初始化化以后(CCHG命令令完成以后后)直到会会话结束任任何时候由由Notiificaationn服务器发发出,不必必要周期性性回复该命命令,但是是收到服务务器该命令令后务必在在最短时间间内回复,而而且必须回回复每一个个CHL命令令,如果服服务器器在在它规定的的时间内没没有收到回回复,它将将关闭会话话。CHL 00 1000502006314447411124002rnCHL指令令有两个参参数,第一一个参数一一定是0,第二个个参数是220位的数数字串,不不可预料,也也不可解释释的数字串串
52、,但是客客户端应该该保存它,在在回复这个个命令中要要用到这个个数字串。客户端回复复QRY指令令,说明客客户端一切切正常。QRY 11049 PRODD00611VRRZZH4FF 32rn778db66562997809912cee9c111c0b11c3433b3bQRY指令令第一个参参数是TrrID,第第二个参数数是本次回回复中使用用的chaallennges字字符串,第第三个参数数是后面的的回复的有有效长度,目目前一定是是32,因为为后面的回回复是一个个经过mdd5算法处处理hassh 串。第三个参参数后面紧紧跟着回车车换行(00 x0D 0 xOAA),回车车换行后面面紧跟着一一个32
53、 位的字符符串,即mmd5值,其其计算方法法是:取得服务务器CHLL命令中的的20位数值值串(1000502206311447441124402),将将QRY 命令中的的challlengges字符符串附加在在其后构成成一个字符符串(1000502206311447441124402PRROD00061VRRRZH4F),计计算其MDD5值得到到一个322位字符串串(78ddb65662978809122ce9cc11c00b1c3343b33b)。当当前使用的的challlengges字符符串有PRROD00061VRRRZH4F、JXQ66JTUUOGYVVN0MM,一般使使用PROOD0
54、0661VRRRZH44F。一般般为了防止止部分数据据包丢失,该该回复命令令将间隔11 秒发送送两次。服服务将回应应该命令成成功:QRY 11049rn这样完成服服务器和客客户端的连连接。第三章 MMSN机器器人系统设设计3.1 系系统结构系统主要由由客户端系系统和自动动问答系统统两部分组组成。客户端系统统由登陆界界面、主MMSN界面面和私聊界界面组成。图3.11给出了客客户端的系系统结构。系统启动后后,由登陆陆界面开始始输入用户户名和密码码,然后进进入到主MMSN界面面,主MSNN界面负责责整个程序序的运行状状态,在这这个界面上上可以通过打开私私聊界面来来与多个人聊天天。私聊界界面界面管管理
55、着机器器人与用户户的对话。 图3.1客客户端系统统结构自动问答系系统由关键键字分析及及提取、数数据库操作作和数据库库三大部分分组成,其其中关键字字分析及提提取为系统统的核心。图3.22给出了自自动问答部部分的系统统结构。关关键字分析析及提取部部分负责提提取出输入入语句包含含的关键字字,数据库库操作部分分利用此关关键字在数数据库里查查找相应回回答,并随随机选取一一条返回。图3.2自自动问答系系统结构3.2 系系统方案选选取本系统采用用MFC的的强大功能能支持,是一个基基于对话框框的Winndowss32应用用程序,使使用的编程程环境是微微软公司的的Micrrosofft Viisuall Stu
56、udio 6.0。网络部分分采用CAAsynccSockket编写写。CAsynncSoccket 类在很低低的级别上上封装了WWindoows Sockkets API ,该类适合合那些对网网络通信细细节很了解解,但希望望利用回调调的便利通通知网络事事件的程序序员使用。利用CAsynccSockket编制制网络程序序不但比较较灵活而且且能够避免免直接调用用Winddows Sockkets API函数数的繁琐工工作。3.3 系系统难点及及相应解决决方案由于客户端端系统涉及及网络,因因此单纯的的程序结构构不能满足足。于是本系系统采用消消息机制驱驱动。当底底层soccket收收到数据时时,会发送
57、送消息通知知上层处理理,然后再再将上层传传入的数据据发送出去去。由于网络的的不稳定,因因此数据包包在传送中中的常常会会丢失或延延时太长,造造成了MSSN登陆的的中断。于于是客户端端系统设置置了时钟回回调函数OOnTimmer(UUINT nIDEEventt),当发发现登陆过过程出现中中断时,会会重启登陆陆过程,直直到登陆成成功为止。MSN MMesseengerr协议内容容繁多且更更新很快,因因此在程序序设计上必必须能方便便的进行扩扩展。于是是客户端系系统采用EEnginne函数来来处理所有有收到的数数据并根据据协议内容容控制程序序的运行。由于存在多多人同时与与机器人对对话的情况况,因此必必
58、须有多个个对话实例例存在,而而多个实例例的管理是是个难题。于是本系系统使用了了容器类vvectoor来管理理。由于MSNN Messsengger协议议里即时消消息发送存存在两种方方式,即主主叫与被叫叫,因此必必须对两种种方式都要要考虑到。于是聊天天部分采用用了两套EEnginne函数。3.4 软软件结构CZxDllg为程序序入口点,由由它生成CCMSN,再再由CMSSN产生CCMSNCChat。图3.33给出了系系统的软件件结构。图3.3软软件结构CZxDllg概述:程序序入口点,也也是登陆界界面。功能:获得得用户输入入的用户名名密码,并并以此初始始化CMSSN,并启启动CMSSN界面。CM
59、SN概述:主MMSN界面面,系统的核核心部分。功能:由输输入的用户户名密码完完成整个登登陆过程,当用户点点击某个好好友时,生生成CMSSNChaat界面负负责与其的的聊天过程程。内部结构:图3.44给出了CCMSN的的内部结构构。图3.4 CMSNN内部结构构结构概述:CMSNNSockket为CCAsynncSoccket的的派生类,负负责接收和和发送数据据;当接到到数据时,会会发送消息息通知上层层OnReeceivve函数,然然后将得到到的数据交交由Enggine函函数处理。Engiine函数数通过Seend调用用CMSNNSockket发送送数据。每每次发送和和接收数据据时都会通通过Wr
60、iiteSttatuss函数输出出状态信息息。CMSNCChat概述:聊天天界面,可可以多个并并存。功能:由输输入的用户户名密码完完成整个登登陆过程,当当用户点击击某个好友友时,生成成CMSNNChatt界面负责责与其的聊聊天过程。内部结构:图3.55给出了CCMSNCChat的的内部结构构。图3.5 CMSNNChatt内部结构构结构概述:结构上与与CMSNN类似,只只是拥有两两个独立的的sockket和EEnginne,因此此不再赘述述。第四章 MMSN机器器人系统实实现4.1 系系统实现部部分4.1.11 CZxDDlg类概述:登陆陆界面。核心代码分分析:OnOK()当用户点击击登陆按钮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技公司知识产权保护制度
- 物流行业货物安全追溯制度
- 文娱产业内容审查制度
- 医疗机构服务行为规范制度
- 制造业安全生产监管制度
- 2.4 数据交换技术
- 响水《道具制作师》职业测试卷
- 护理风险沟通机制
- 护理记录单书写常见误区及纠正
- 麻疹风疹防控方案培训考核试题(一)
- 五年(2021-2025)中考数学真题分类汇编(河南专用)05:函数基础与一次函数(学生版)
- 广东省珠海市文园中学2024-2025学年七年级下学期语文期中试卷(含答案)
- 西餐制度管理制度
- 消防大队安全警示教学课件
- 司法实践中的价格鉴证应用
- AI在医疗质量控制中的全流程管理
- 数字疗法在糖尿病管理中的创新应用
- 膀胱内异物护理查房
- 二尖瓣钳夹术护理查房
- 物料供应商遴选制度
- 2026年高考化学一轮复习:专题知识点清单
评论
0/150
提交评论