仿QQ聊天软件--基于局域网TCP蓝精灵聊天软件的实现

2018-12-19 22:47

西南大学

计算机与信息科学学院

学年设计报告

课程:学年设计 题目:蓝精灵聊天软件 级、专业:2014级计算机科学与技术专业2班 学生姓名:杨XX 提交日期:2016年 12月16日

内容提要: 本次的学年设计课题是基于局域网TCP/IP网络通信的聊天软件的实现。从一定程度上,借鉴了一些其他强大聊天软件的设计开发的基于局域网的聊天软件。 本课题设计主要用的知识涉及到计算机网络、数据库编程、C#网络通信编程等等。主要的知识点有:socket套接字、TCP面向连接的网络通信、ISO模型、C/S模型、SQLServer等等。 蓝精灵聊天软件实现了在一个局域网内部的客户端之间通过服务器端进行聊天通信功能。也就是说,主要包括两个部分的功能,一个是服务器,一个是客户端。服务器实现了启动监听、响应客户端发来的连接请求、转发从一个客服端接收的消息到另外一个客户端、响应客户端发来的动作请求、关闭监听。客户端实现了用户注册、用户登录、查找并添加好友、删除好友、好友聊天的功能。 关键词: SocketTCPClient计算机网络Server SQLServer 网络通信 C#编程 C/S模式ISO模型局域网 参考书目: C#网络通信程序设计精讲吴晨陈建孝编著清华大学出版社 C#开发宝典王小科李继业等编著机械工业出版社 萨师煊 数据库系统概论 高等教育出版社 计算机网络原书第6版 James F.Krouse Keith W.Ross 机械工业出版社 成绩评定: 指导教师(签字): 年月日

目录

1 概述 ................................................... 1 2 基本概念和方法、工具 ................................... 1

(1)基本概念 ............................................................................................................................ 1 (2)方法 .................................................................................................................................... 2 (3)开发工具 ................................................................................................................................. 3

3 设计方案 ............................................... 3

(1)总体设计 ............................................................................................................................ 3 (2)界面设计 ............................................................................................................................ 4 (3)服务器端设计说明 ............................................................................................................. 5 (4)服务器端设计..................................................................................................................... 5 (5)客户端设计 ........................................................................................................................ 6 (6)数据库设计 ........................................................................................................................ 9

4 源代码 ................................................ 10

(1)服务器端 .......................................................................................................................... 10 (2)客户端 .............................................................................................................................. 22 (3)数据库 .............................................................................................................................. 34

5 简要的使用说明 ........................................ 35 6 总结 .................................................. 40 7 参考文献 .............................................. 41

蓝精灵聊天软件系统

1概述

即时通信软件为我们提供了诸多的方便,使我们逐步享受信息时代的便捷。我们最熟悉的即时通信软件就是QQ了,因为它几乎已经融入了我们每个人的日常生活。由此可见,生活在信息时代的人们对即时通信、聊天软件有巨大的需求,这样的软件也将为我们节省大量的时间。

然而,基于internet的QQ已经深入人心,要想再去做可能没有任何竞争力。此时,我们可以换一个角度,调整用户对象。如今的时代背景下,信息的泄露早已屡见不鲜,尤其是一些大企业的内部信息,如果这些信息泄露,可能会造成巨大的经济损失,甚至将导致企业破产。因此,为了便捷内部人员之间的交流,做这样的一个内部即时通信、聊天软件还是很有市场的。我们的目标就是做的仿QQ的聊天软件蓝精灵,面向内部人员使用的即时通信软件。

为了方便内部人员之间便捷的交流,需要开发一款适合内部人员进行即时通信的软件,这样的软件既满足了内部人员之间便捷的交流,同时,也防止内部信息的外流,开发这样一款即时通信软件,是很有必要的。

综合以上因素,我们利用C#网络通信编程实现了基于TCP/IP可靠网络通信系统—蓝精灵聊天软件。本软件包括两个部分,客户端和服务器。服务器的功能主要是监听客户端发来的连接请求并予以响应、转发客户端的信息、响应客户端执行注册、登录等的操作以及关闭连接。客户端主要是界面,注册、登录、搜索添加好友、删除好友以及与好友聊天的功能实现。

2 基本概念和方法、工具

(1)基本概念

TCP:是一种面向连接的、可靠的、基于字节流的传输层通信协议。

套接字:IP地址和目的IP地址以及源端口号和目的端口号的组合,其用于标识客户端请求的服务器和服务。

C/S模式:C/S 结构,客户机和服务器结构。

局域网:在一个局部的地理范围内(如一个学校、工厂和机关内),将各种计算机、外部设备和数据库等互相联接起来组成的计算机通信网,简称LAN。它可以通过数据通信网或专用数据电路,与远方的局域网、数据库或处理中心相连接,构成一个大范围的信息处理系统。 套接字简介:套接字最早是 Unix 的,window 是借鉴过来的。TCP/IP 协议族提供三种套接字:流式、数据报式、原始套接字。其中原始套接字允许对底层协议直接访问,一般用于检验新协议或者新设备问题,很少使用。

套接字编程原理:延续文件作用思想,打开‐读写‐关闭的模式 (2)方法

1

采用Socket 异步通信方式 服务器端: a.主界面:

privatevoid btnStart_Click(object sender, EventArgs e);/*点击启动按钮的响应函数*/ privatevoid AcceptCallback(IAsyncResult ar);/*异步接收来自客户端的消息*/ privatevoid ReceiveCallback(IAsyncResult ar);/*对接收到的消息进行处理*/

privatevoid Respond(MyFriend frd, ClassMessage msg);/*服务器对客户端消息的响应函数*/ privatevoid SendData(MyFriend frd, ClassMessage msg);/*发送反馈消息给当前客户端*/ privatevoid SendDataTo(MyFriend frd, ClassMessage msg);/*发送聊天信息给在线客户端*/ privatevoid btnStop_Click(object sender, EventArgs e);/*点击结束按钮的响应函数*/

b.Data控件:

publicint LoginExSQL(LoginMsg msg, string remoteEndPoint);/*查询数据库验证登录信息*/ publicint RegistExSQL(ClassMessage msg);/*在数据库插入注册用户信息并返回注册结果*/ publicClassMessage GetmymsgExSQL(ClassMessage msg);/*从数据库中获取用户信息*/ publicstring[] GetfriendsExSQL(ClassMessage msg, outint count);/*获取好友ID*/ publicSqlDataReader GetfriMsgExSQL(string FriendMsg, int flag);/*从数据库中获取用户的好友信息*/

publicint AddFrinedExSQL(ClassMessage msg);/*将好友相关信息插入数据库Friends表*/ publicint DeleteExSQL(ClassMessage msg);/*从Friends表中删除好友相关信息*/

客户端: a.登录界面:

privatevoid button_register_Click(object sender, EventArgs e);/*注册按钮的点击响应*/ privatevoid button_Login_Click(object sender, EventArgs e)/*登录按钮的点击响应*/ privatevoid Login_OK()/*登录成功,进入好友列表界面函数*/

privatevoid button_Quit_Click(object sender, EventArgs e)/*退出按钮的点击响应*/

b.注册界面:

privatevoid button_register_Click(object sender, EventArgs e)/*立即注册按钮的点击响应*/

privatevoid button_Cancel_Click(object sender, EventArgs e)/*取消按钮的点击响应*/

c.好友列表界面:

privatevoid FriendList_Load(object sender, EventArgs e)/*好友列表界面主窗体显示*/ privatevoid ShowMymsg()/*用户信息初始化及显示*/

privatevoid AddFriends(TCPSocket client, ClassMessage msg)/*显示好友列表信息*/ privatevoid button_Search_Click(object sender, EventArgs e)/*搜索按钮的点击响应*/ privatevoid StartChat()/*进入聊天界面函数*/

privatevoid ItemDoubleClick(object sender, MouseEventArgs e)/*双击好友项的响应函数*/ privatevoid删除好友ToolStripMenuItem_Click(object sender, EventArgs e)/*右键菜单选项删除好友点击响应*/

privatevoid发起会话ToolStripMenuItem_Click(object sender, EventArgs e)/*右键菜单选项发起会话点击响应*/

d.搜索好友界面:

public SearchFriends(TextBox textBox_Search, Label label_userName)/*有参构造函数*/ privatevoid SearchFriends_Load(object sender, EventArgs e)/*搜索界面主窗体显示*/

2


仿QQ聊天软件--基于局域网TCP蓝精灵聊天软件的实现.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:立即行动起来 努力开创我镇老龄工作新局面

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: