优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

019_多功能聊天软件(文字聊天文件传输)(C#)

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

多功能聊天软件的设计方案
4.1 聊天系统流程的分析与设计
此聊天软件是采用C/S结构,其系统流程图如图1所示。

图1 系统流程图
使用这个聊天软件的用户必须先进行注册,在登录窗体用户单击注册按钮,激活注册窗体。填写相关的注册信息,提交给服务器。服务器将注册信息提交给数据库,并由服务器按注册顺序生成一个用户ID号返回给注册用户,这样注册就完成了。然后用户用注册成功的ID号和注册时的密码进行登录。用户在登录窗口填写用户ID和用户密码,由客户端将登录信息提交给服务器,服务器根据数据库中存储的用户信息与客户端提交的登录信息进行比较,比较一致后,则返回一个登录成功地确认信息给客户端,当客户端收到这个确认信息时,则激活本聊天软件的客户端主窗体。这时你要与好友进行聊天,则必须添加好友,比如用户2要添加用户N为好友,用户2首先向用户N发出添加好友请求信息,用户N接受到用户2的信息,并通过验证发送确认反馈信息给用户2,并且向服务器提交好友添加确认信息,这时服务器就会更新相应用户的好友列表中的信息。好友添加完成后,用户之间就可以进行彼此之间的通信,如文字聊天、视频、语音聊天、文件传输等。
以上如图1为多功能聊天软件系统的总体流程图,其中包括了登录模块、注册模块、添加好友模块、服务器模块、数据库模块等。在这个多功能聊天软件系统开发设计与实现中,作者主要负责服务器模块、数据库模块、添加好友模块、文字聊天与文件传输功能模块的设计与实现。下面就对数据库模块与添加好友模块的流程和服务器模块进行了分析。 [资料来源:http://think58.com]
4.2 数据库模块的分析与设计
该聊天系统的数据库设计的目的是保存用户信息,为用户之间的通信提供相关的数据服务,比如在用户登录时,在登录模块中输入的相关信息(用户ID、密码),就要和数据库中已有的相关信息进行比较,如果相同就表明登录成功,如果不一致则要重新登录。其设计思路是:首先建立一个用户信息总表,这张表包括每个人的详细信息,如用户名、用户ID、用户头像编号等,是在用户注册时,将信息写入该用户信息总表内;然后当一个用户注册成功后,服务器就会自动生成一个该用户的好友表,该表中存放的是该用户添加的好友信息,在登录成功后的客户端界面的好友信息就来源于此好友表,这样两个在线的好友之间就可以通信了。图2所示,为此聊天系统的数据库总体设计结构图。

图2 数据库结构图
由于聊天系统的作用是提供用户之间通信,也就是说它的实体就是用户,所以数据库表的关系就为用户表与用户表之间的关系。图3为此聊天工具的数据库的E-R图,它体现了用户1表(用户1ID,用户1姓名,用户1头像ID等),其中“用户1ID”为主键;用户2表(用户2ID,用户2姓名,用户2头像ID等),其中“用户2ID”为主键。他们之间的关系是1:1关系,也就是说用户1的好友表只能添加一个用户2为好友,用户2的好友表只存在一个用户1的ID号。用户1可以添加N个用户为好友,但这些好友的ID号信息在用户1的好友表中是唯一的。

[资料来源:http://THINK58.com]



图3 E-R图
4.3 添加好友模块的分析与设计
用户1通过服务器查询数据库中已有的好友资料,并向所要添加的好友发送添加请求,用户2接收到用户1的请求,经过验证将消息发送给用户1,用户1接收到同意添加消息后,添加用户2位好友,并将用户2的信息存入到用户1的好友表中,同时用户2也将用户1的信息存入用户2的好友表中,并把相关信息提交给服务器,让服务器对数据库进行发更新。图4为添加好友系统流程。

图4 添加好友系统
4.4 服务器模块的分析与设计
该服务器的作用是对数据进行处理,整个聊天系统依靠服务器对数据的处理来运行,比如登录功能、注册功能、添加好友功能等都是利用服务器对数据的处理来实现的,如图5所示,为服务器运行时的状况。

图5 服务器运行图
本设计主要完成的是文字聊天、文件传输模块,以及添加好友、服务器模块和特殊功能模块,下面对其设计进行实现进行详细说明。
5 文字聊天、文件传输模块的设计与分析
5.1 文字聊天模块的分析
文字聊天是聊天工具最早的信息传递方式,用户通过打字,将信息传递给好友。至今为止,文字聊天在网络聊天中是应用最为广泛的聊天方式。其实现原理是:通信双方通过Socket套结字进行文字信息的传输。用户双方通过Socket套结字建立连接,并将文字信息以数据流的形式进行发送。如图6所示,为文字信息流程图。 本文来自think58

[来源:http://www.think58.com]



图6 文字聊天流程
5.2 文字聊天模块功能具体实现
文字聊天模块功能是聊天软件诞生以来,最早实现信息传递的功能模块。首先双击客户端应用程序,让其程序运行。经过登录验证后,程序开辟一个新的线程udpThread来完成udp的监听功能,并通过调用UdpReceiveMsg()函数来实现对udp数据包的接收功能。在由switch语句块根据控制字符选择相应的功能函数实现相应的功能。关键代码如下:
文件Client.cs
udpThread = new Thread(new ThreadStart(UdpReceiveMsg));
udpThread.Start()
………………………
private void UdpReceiveMsg()
{
……………………
udpSocket.Bind(LocalPoint);
count = udpSocket.Receive(read);
……………………
switch (ctrl)
{
case "MSG": //接收信息
this.SelectUser(gostr);
break;
case "REQ": //接收好友添加请求
this.FriendRequest(gostr);
break;
case "AFF": //好友添加反馈信息

[资料来源:www.THINK58.com]


this.FriendResqonse(gostr);
break;
……………………
}
}

copyright think58 [资料来源:www.THINK58.com]

[资料来源:www.THINK58.com]