ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:1.52MB ,
资源ID:2084999      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2084999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c#实现网络聊天室socket仿QQ课程设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c#实现网络聊天室socket仿QQ课程设计.docx

1、c#实现网络聊天室socket仿QQ课程设计 Visual C#程序设计课 程 设 计(报告)题目: 网络聊天室 专业班级: 地信131 * * 学 号: *2 完成时间:_ 2015.7.12_ 任务书 项目四 网络聊天室 4.1、目的与要求1. 目的: 1)要求学生达到熟练掌握.NET基本结构以及C#语言的基本知识和技能; 2)基本掌握面向对象程序开发的基本思路和方法; 3)掌握网络程序开发的基本知识; 4)能够利用所学的基本知识和技能,进行简单的网络通信程序设计。 2. 要求 基本要求: 1)要求利用C#的编程思想以及套接字开发原理来完成系统的设计; 2)突出C#语言与其它语言不同点(即

2、体现C#的高级功能,如属性概念、接口、事件、委托等); 3)体现可视化编程基本东西,如系统带有菜单、工具栏、状态栏以及一些常用的高级控件。 创新要求: 在基本要求达到后,可进行创新设计,如加入文件传输功能,以及远程控制功能。 4.2、信息描述有关该系统基本信息的描述,如:客户端实例的信息等。类似于QQ。 4.3、功能描述1. 聊天室服务器端的创建。 2. 聊天室客户端的创建。 3. 实现客户与服务器的连接通讯。 4. 实现客户之间的私聊。 5. 实现客户端的在线信息显示。 6. 实现服务器端当前在线客户信息。 7. 保存谈话记录。 4.4、解决方案1. 首先进行需求分析,搞清楚系统功能和任务。

3、 2. 然后总体设计中确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。 3. 详细设计中为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图),描述模块的详细过程;确定每一模块使用的数据结构;确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口。 4. 依据分析编写C#代码。 1.需求分析 - - - - - - - - - - - - - - - - - - - - 1 1.1 摘要1.2 系统开发背景1.3聊天软件的开发目标2.概要设计 - - - - - -

4、- - - - - - - - - - - - - - 22.1 服务器端2.2 客户端3.详细设计 - - - - - - - - - - - - - - - - - - - - 34.编码 - - - - - - - - - - - - - - - - - - - - 64.1 服务器端核心编码4.2 客户端核心代码5.调试分析 - - - - - - - - - - - - - - - - - - - 18 6.用户使用说明 - - - - - - - - - - - - - - - - - 27 7.课程设计总结 - - - - - - - - - - - - - - - - 288.

5、参考文献 - - - - - - - - - - - - - - - - - - - 28 1.需求分析 1.1摘 要作为除电视、报纸、广播之外的第四大媒体,互联网不仅成为人们获取新闻信息的主要来源,更成为了人们闲暇之余的一种休闲手段。随着互联网技术的发展,各种各样基于网络的应用也随之诞生,网络聊天工具便是其中的一种。本文采用Visual Studio 2010+SQL Server 2008开发环境,结合WinForms、ADO.NET等多种技术,实现了一个类似QQ的网络聊天工具,并在WINDOWS平台上加以了实现。通过C#语言进行网络编程,通过公共的数据库交换各种信息,实现了人性化的界面设

6、计与功能设计。软件经过测试,满足现代人们即时通信的需求,达到预期的设计效果,对网络聊天工具的人性化设计具有一定的现实意义,同时也为其他相关项目的设计提供了参考。关键词:网络聊天工具 C# 即时通信 数据库 人性化 1.2 系统开发背景在互联网相当普及的今天,你们对网络的依赖越来越大,越来越离不开网络,网络聊天更是成为了人们的“家常便饭”。通过网络聊天工具,人们足不出户就可进行闲聊甚至工作会谈,极大地方便了人们的日常生活与工作需求。 常用的网络聊天工具主要是QQ与MSN。MSN主要用于国际,而国内的主流网络聊天工具是QQ。为了方便同学之间的交流,我决定设计一个类似QQ并且无垃圾信息的网络聊天工具

7、,此外也希望通过本次课程设计能更好地学习与掌握网络软件编程知识。 1.3 聊天软件的开发目标 本次课程设计的主要工作是设计一个类似QQ的网络即时聊天工具,主要是采用WinForms+ADO.NET+Socket通信技术实现。软件功能主要包括用户注册、用户登录、用户间聊天、查找/添加好友、个人设置以及服务器的搭建等。客户端通过公共的数据库交换信息,消息的发送和读取都是通过Socket通信技术和操作数据库来完成的。在程序中采用定时扫描数据库的方式来查找登录用户。以及Socket通信技术实现信息交换。2.概要设计 (1)数据库端MODEL类:数据库的模型层包括Users(用户层)Stars(用户所对

8、应的星座)Friends(用户之间的好友关系层)BloodType(用户所对应的血型)DAL类:sqlHelper(数据库与数据层DAL的连接类)UsersDAL(用户的数据层)StasDAL(用户所对应的星座数据层)FriendsDAL(用户之间的好友关系的数据层)BloodTypeDAL(用户所对应的血型的数据层)BLL类:UsersBLL(用户的业务层)StarsBLL(用户所对应的星座的业务层)FriendsBLL(用户之间的好友关系的业务层)BloodTypeBLL(用户所对应的血型的业务层)(2)服务器端Server类:ClientManager(客户端通信管理类)DGSendMs

9、g(显示消息的委托类)MainServer(主窗体)(3)客户端新建客户端类:Login(登录主窗体)FrmInformation(登录后的消息提示)MainList(主界面与聊天窗口)AddFriend(通过Id添加好友)Apply(申请号码)forgetpwd(找回密码)HeadList(选择更换头像)MyDetail(个人详细资料设计)MyHead(浮动头像框)Search(不同条件查询好友)3.详细设计 设计中定义的所有数据类型涉及太多就不一一列出,下面是我程序个个的调用流程图。(1)(模型层-数据层-业务层)(业务层与UI层) (客户端与服务器通信)4.编码 (1)(服务器端核型代码

10、) /服务器监听套接字 Socket sokServer = null; /监听线程 Thread thrServer = null; /客户端管理类 ClientManager clientManage = null; BLL.UsersBLL userBll = new BLL.UsersBLL(); /点击开启服务器 private void btnSerStar_Click(object sender, EventArgs e) try sokServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, Proto

11、colType.Tcp); IPAddress ip = IPAddress.Parse(txtSerIP.Text.Trim(); /创建端口号对象 IPEndPoint point = new IPEndPoint(ip, int.Parse(txtSerPort.Text.Trim(); / 监听 sokServer.Bind(point); /最多连几个 sokServer.Listen(Convert.ToInt32(cmbSerMax.SelectedItem); /开启新线程 thrServer = new Thread(WatchConnection); thrServer.I

12、sBackground = true; thrServer.Start(); /管理类对象实例化 clientManage = new ClientManager(listChat, AppendMsg); AppendMsg(开始监听! + DateTime.Now.ToString(); catch (Exception ex) MessageBox.Show(异常: + ex.Message + DateTime.Now.ToString(); AppendMsg(异常: + ex.Message + 1 + DateTime.Now.ToString(); bool isWatchin

13、g = true; void WatchConnection() try while (isWatching) /负责通信的socket Socket sokMsg = sokServer.Accept(); /加入通信管理类 clientManage.AddClient(sokMsg); txtOnlineCount.Text = listChat.Items.Count.ToString(); catch (SocketException ex1) AppendMsg(异常: + ex1.Message + 2+DateTime.Now.ToString(); catch (Excepti

14、on ex) AppendMsg(异常: + ex.Message + 3 + DateTime.Now.ToString(); /通信管理类/ / 客户端管理 / public class ClientManager /好友列表控件 private System.Windows.Forms.ListBox listClient; DGSendMsg dgSendMsg; /通信套接字key :客户端ip value :对应的通信套接字 private Dictionary ClientSocket; public ClientManager() / / 客户端管理类 / / 列表控件 / 显示消息 public ClientManager(System.Windows.Forms.ListBox lb,DGSendMsg dgSendMsg) this.listClient = lb; this.dgSendMsg = dgSendMsg; / dictClientSocket

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1