局域网聊天系统.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
局域网聊天系统

面向对象课程设计报告——局域网点对点聊天系统班级:1120学号:姓名:目录一、课程设计题目3二、需求分析3三、概要设计33.1程序时序图与系统架构33.2程序描述6四、详细设计74.1核心代码-IMessageSender:74.2核心代码- MessageReceiver8五、程序使用说明、测试分析及结果8六、课程设计总结8七、参考文献8一、课程设计题目局域网点对点聊天系统二、需求分析主要实现局域网的无服务器的点对点信息传递,并且实现登陆,注册,注销,关闭功能。登陆后可以通知聊天对象;发送聊天信息包括用户名和发送时间;注销后通知对方。三、概要设计3.1程序时序图与系统架构?本系统采用无服务器模式实现聊天功能,运行程序后即开始监听,指定本地套接字地址以保证请求方可以进行连接,假设这个为A,当局域网中有另一程序(B)向A发起请求时,建立连接,此时A可以通过建立的套接字连接向进行信息通信,同时A也可以向B发起请求建立连接,即实现了点对点的聊天。用户A和用户B进行对话,在它们之间建立起连接。尽管“用户A”和“用户B”的地位是对等的,但按照约定俗称的说法:我们将发起连接请求的一方称为客户端(或叫本地),另一端称为服务端(或叫远程)。所以我们的登录过程,就是“用户A”连接到“用户B”的过程,或者说客户端(本地)连接到服务端(远程)的过程。在分析这个程序的过程中,我们总是将其分为两部分,一部分为发起连接、发送消息的一方(本地),一方为接受连接、接收消息的一方(远程)。登录和连接(本地)(客户端)主路径可选路径1.打开应用程序,显示登录窗口?2.输入已经注册好的用户名和密码?如果没有账号密码点击注册注册3.点击“登录”按钮,登录成功3.“登录”失败如果用户名或者密码为空,或者输入错误,重新进入第2步。4.显示主窗口,显示登录的用户名称?5.点击“连接”,连接至远程?6.连接成功6.1提示用户,连接已经成功。6.连接失败6.1 提示用户,连接不成功5.在用户界面变更控件状态5.2连接为灰色,表示已经连接5.3注销为亮色,表示可以注销5.4发送为亮色,表示可以发消息?当客户端连接至服务端时,服务端采取的动作。登录和连接(远程)(服务端)主路径可选路径1-4 同客户端?5.等待连接?6.如果有连接,自动在用户界面显示“远程主机连接成功”?发送消息。在发送消息时,已经是登录了的,也就是“用户A”、“用户B”已经做好了连接:发送消息(本地)主路径可选路径1.输入消息?2.点击发送按钮2.没有输入消息,重新回到第1步3.在用户界面上显示发出的消息3.服务端已经断开连接或者关闭3.1在客户端用户界面上显示错误消息接收消息:接收消息(远程)主路径可选路径1.侦听到客户端发来的消息,自动显示在用户界面上。?当远程主机向本地返回消息时,它的用例又变为了上面的用例“发送消息(本地)”。因为它们的角色已经互换了。注销:注销(本地主动)主路径可选路径1.点击注销按钮,断开与远程的连接?2.在用户界面显示已经注销?3.更改控件状态3.1注销为灰色,表示已经注销3.2连接为亮色,表示可以连接3.3发送为灰色,表示无法发送?与此对应,服务端应该作出反应:注销(远程被动)主路径可选路径1.自动显示远程用户已经断开连接。?当远程主动注销时,它采取的动作为上面的“本地主动”,本地采取的动作则为这里的“远程被动”。3.2程序描述3.3.1消息Message???定义消息,消息包含三个部分:用户名、时间、内容。 3.3.2消息发送方IMessageSender???消息发送方主要包含几个功能:登录、连接、发送消息、注销。另外在连接成功或失败时还要通知用户界面,发送消息成功或失败时也需要通知用户界面,因此,我们可以让连接和发送消息返回一个布尔类型的值,当它为真时表示连接或发送成功,反之则为失败。因为登录没有任何的业务逻辑,仅仅是记录控件的值并进行显示,所以不将它写到接口中。public?interface?IMessageSender?{?bool?Connect(IPAddress ip,?int?port);???????// 连接到服务端?bool?SendMessage(Message msg);??????????????// 发送用户?void?SignOut();?????????????????????????????????// 注销系统}3.3.3消息接收方ImessageReceiver??对于消息接收方,它的操作全是被动的:客户端连接时自动提示,客户端连接丢失时显示自动提示,侦听到消息时自动提示。在C#中,可以定义委托和事件,用于当程序中某种情况发生时,通知另外一个对象。在这里,程序即是我们的?IMessageReceiver,某种情况就是上面的三种情况,而另

您可能关注的文档

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档