3.3.3开发网络聊天系统-人教版高中信息技术必修二 课件_第1页
3.3.3开发网络聊天系统-人教版高中信息技术必修二 课件_第2页
3.3.3开发网络聊天系统-人教版高中信息技术必修二 课件_第3页
3.3.3开发网络聊天系统-人教版高中信息技术必修二 课件_第4页
3.3.3开发网络聊天系统-人教版高中信息技术必修二 课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人教/中图版(2019)第三章3.3.3开发网络聊天系统使用网络中的一些聊天室时,只要在浏览器中输入聊天室的网址,根据提示登录后就可以聊天了。下面开发一个简易的文字型网络聊天系统,这个系统的客户端用浏览器来担当。要开发的信息系统功能很简单:客户端负责发送、接收信息,服务器负责把收到的信息转发给客户端。明确系统结构在本节的范例中,聊天系统将采用WebSocket协议进行通信,绝大多数浏览器都已经支持这种协议,因而开发过程相对简单。如果需要,也可以采用其他协议进行开发。明确系统结构随着浏览器的功能越来越强,很多信息系统的客户端都已借助浏览器来实现,编写客户端软件的过程类似于编写网页。通常,网页本身由HTML代码构成。HTML是hypertextmarkuplanguage的缩写,中文译为“超文本标记语言”。浏览网页时,浏览器软件根据代码进行布局图文、展示影像等操作。开发客户端软件项目实施编写客户端软件1.明确客户端软件应该具备的具体功能_连接服务器_输入信息_发送信息_接收信息_显示接收的信息2.参照下面的代码,用HTML编写或改写网页形式的客户端项目实施<html>inputid='host'valve=127.0,0.1)</input>#服务器地<buttononc1ck-‘con()>连接</button><br/><br/><inputid=‘msg’></input>#输入聊天信息<buttononclick-send()>发送</button><divid="output"></div><script>functioncon()#建立连接{ws=newwebsocket(ws://"+host.value+":8765/)项目实施ws,onopen=function(evt){writeToScreen("CONNECTED1)};Ws.onmessage-function(evt){writeToscreen(evt.data););}functionsend#发送信息{message=msg.value;Ws.send(message);f}functionwriteToscreen(message)#显示信息项目实施{varpre=document.createElement(p);Pre.innerHTML-message;outputappendchild(pre);}</script></html>3.检查代码是否与书中一致,了解每段代码的功能,然后以client.html为名保存起来前面编写的网页文件中,在<script>和</script>之间一段特殊的代码,编写这段代码使用的是Javascript编程语言。这种语言可用来控制浏览器完成多种复杂操作。具体来说,浏览器解析网页中的Javascrip代码时,就会采用WebSocket协议,连接服务器的8765端口.然后等待用户发出信息或等待接收服务器转发的信息。其中,定义变量ws的过程就是尝试建立连接的过程。Ws.onmessge表示成功建立了通信连接,writeToScreen表示收到了从服务器传来的消息,它们都调用writeToscreen方法把相关信息显示在网页上。代码中的send方法用于发送消息。开发服务器和客户墙软件时,常常会根据两者不同的行环境,采用不同的语言。下面以Python为例做介绍。开发服务器软件项目实施编写服务器软件1.明确聊天服务器的工作过程。服务器时刻不停地监听某个端口有信息传来时,就根信息做出相应的处理:或建立网络连接,或接收并转发传来的消息。2参照下面的代码,编写Phyon程序。#引入程库Importwebsocketsimportasyncio#保存客户端cs=set()项目实施asyncdeftalk(websocket,path);Try;whileTrue;if(notwebsocketincs)#新的访问申请cs.add(websocket)msg=‘欢迎:‘+str(websocket.renote_address#新的聊天消息Else;Msg=str(websocket,remoteaddress)+’说’+str(awaitwebsocketrecv())项目实施awaitasyncio.wait(ws,send(msg)forwsincs])#转发信息exceptExceptionaserr:cs.remove(websocket)#移除客户端连接#监听8765口start_server=websockets.serve(talk,l’ocalhost’,8765)asyncio.geteventloop().run_untilcomplete(start_server)asyncio.geteventloop().run_forever()程序变量cs存放着所有连到服务器的客户端连接。运行时,这个软件会开放本地的8765端口,以Websocket协议提供网络服务,随后所有的网络通信都在talk方法中进行处理。程序中的talk方法采用了无限循环的方式,不断监听端口。如果有新的用户连入,就保存通信连接井用类似“欢迎”的内容通知其他用户;如果是新的聊天消息,就在消息前面加上发信人的网络地址,然后转发给所有人编写这个Python程序时,引入了两个重要的库:一个是名为websockets的网络库,用于处理Websocket网络协议,实现通信功能;一个是在服务器开发中经常会使用的名为asyncio的标准库,用于以异步模式处理信息。关于异步,后面会做简单介绍。编写好客户端软件和服务器软件后,就可以把它们组合在一起,形成网络聊天系统了。部署实施项目实施部署信息系统1.调试、运行服务器软件,确保翟序正常运行2.用浏览器软件打开网页文件,试试能否正常访问本地服务器3.小组内运行修改后的服务器软件,并公布那台计算机的网络地址,然后同一网络中的其他人用计算机连接公布的服务器,尝试多人聊天。提示:start_server=websockets.serve(talk,'xxx.xxx.xxx.xxx,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论