聊天室系统实训总结.docx
《聊天室系统实训总结.docx》由会员分享,可在线阅读,更多相关《聊天室系统实训总结.docx(7页珍藏版)》请在冰豆网上搜索。
聊天室系统实训总结
聊天室系统实训总结
聊天室系统实训总结,沟通是很重要的,下面是带来的聊天室系统实训总结,欢迎阅读!
聊天室系统实训总结
在编写JAVA聊天室的过程中,让我学到了很多东西,有知识方面的,而更多的是经验。
从以前学习C,到现学习JAVA,有很多的地方不习惯。
主要的就是思想不会转变。
但是还是有很多相似的地方,
比如,如何实现心中所想的东西时,很多函数的编写的方法是类似的,而不同的是JAVA多了继承、多态、封装等等
面向对象的东西。
所以在整体构思方面差异比较大,但是细节方面还是类似的。
编写聊天室让我对面向对象的了解算是更进一步了。
首先:
聊天室实现的就是聊天;用户与用户之间实现聊天的功能。
然后:
对于聊天这个功能如何实现呢?
1、要实现用户与用户之间的交流,必须要有一个通信实体做出“主动姿态”,主动接受来自其他通信实体的连接请求。
这就是服务端。
2、客户端——用于连接到服务端,然后实现用户之间的通信。
所以这里的服务器和客户端便是两个对象,它们能实现用户之间的通信。
对于总体的构思擦不多就是这样。
所以现在需要的便是一步一步的细化下去。
一、服务端
a)服务端如何实现主动接受其他通信实体的连接请求?
b)如何实现客户端之间信息的收发?
c)服务端应该有些什么样的功能呢?
二、客户端
a)如何连接到服务端?
b)客户端应该有些什么样的功能?
当慢慢的思考下去,思想便会慢慢的清楚。
再开始编写的时候,其实头是乱的,摸不着头绪,因为那时候开始的时候便在想:
如何写连接?
如何写收发信息?
如何写连接?
等等。
也许这就是学C的时候的习惯思想,那时候写过的最大的程序便是俄罗斯方块,其余的便是在搞算法。
不过当自己慢慢的习惯JAVA的编程思想之后,便是好多了。
对于服务端和客户端的设计
1、服务器端的主要功能:
a)在特定的端口上进行监听,等待客户端连接。
b)默认端口为30000。
c)向已经连接到服务的用户发送系统消息。
d)统计在线人数。
e)当停止服务器时,断开所有的用户连接。
2、客户端的主要功能:
a)连接到已经开启的聊天服务的服务端。
b)用户可以配置连接后显示的用户名。
c)当服务器端开启的话,用户可以随时登陆和注销。
d)用户可以向所有人或者某一个人发送消息。
主要类和方法:
一、服务端:
1、ChatSever便是服务器的主框架了。
包括服务器的属于的定义、
组件的组合、事件的处理等等。
2、ServerListen类是服务端的监听类。
监听客户端是否连接。
3、ServerReceive类是接收和发送客户端、服务端的消息。
4、LNode类封装了用户的属性。
5、UserLinkList类则是封装了对用户操作的方法。
如:
添加、查找、删除等;
6ServerHelp类这是帮助板块。
二、客户端
1、Client类则是客户端的主要框架。
2、UserSet类是对用户名的设置和修改。
3、ClientReceive类实现客户端和服务端消息的收发。
4、ClientHelp类这是帮助板块。
(具体代码就不发了,太多了。
)
对于聊天室的编写部分已经完成了,接下来便是完善它的功能和修复它的一些BUG。
因为发现有很多地方有BUG:
1、客户端无法接收到服务端发出的系统消息。
2、服务端无法收到客户端下线的消息,导致服务端无法删除以下线的客户端。
所以客户端连接重复。
3、当服务端停止服务时,客户端未断线。
4、客户端不能接收到其他客户端的上线和下线消息。
目前发现的BUG就是以上几个。
同时除了BUG以外,还发现很多的不足:
1、客户端的IP设置是不能改变的,所以当服务端换IP时,客户端需要从源代码中去修改,导致不方便。
2、服务端、客户端没有设置快捷按钮,导致每次启动都要通过“菜单”来启动和连接。
3、所有的表现都是以文字表现的不能接收和发送图片。
以上是目前发现的不足点。
希望能在修改之后得到完善。
聊天室系统实训总结
前言
摘要:
本文提出并设计了一个局域网聊天工具,并在WINDOWS平台上利用C#编程语言加以实现。
本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。
关键词:
局域网;C/S体系结构;文本聊天;文件传输
1、聊天系统的设计与实现
摘要:
本文提出并设计了一个局域网聊天系统,并在WINDOWS平台上利用C#编程语言加以实现。
本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。
关键词:
局域网;C/S体系结构;文本聊天;文件传输
2、聊天系统系统概述
2.1开发目标和意义
本设计的主要工作是设计一个基于PC机平台的局域网即时聊天系统,具体是采用C/S模式实现用户之间的通信,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。
局域网聊天系统,是在局域网内部使用的,用户之间用来交流的一个系统,一般都具有文本聊天和文件传输功能。
局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。
2.2C#编程编程
通常的通信系统,都采用客户机/服务器(C/S)体系结构,C/S结构是这样的一种结构:
它包括客户机和服务器。
客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。
Client/Server结构是当前数据库应用程序
中极为流行的一种方式。
尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。
另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。
Client/Server模型最终可归结为一种“请求/应答”关系。
一个请求总是首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。
在客户发出一个请求之前,服务进程一直处于休眠状态。
一个客户提出请求后,服务进程被“唤醒”并且为客户提供服务,对客户的请求做出所需要的应答。
3、聊天室的系统概要
1.首先可以打开登陆界面,并且有可以用于交互的界面,可以用于登陆,注册;登陆进去之后,可以修改用户的基本信息;登陆进去的用户,可以任意的向同一网络内的其他用户发送信息!
登陆进去的用户可以查询自己的聊天记录,并且定期删除自己的聊天记录。
2.没有登录的用户可以新的注册,密码错误的用户可以进行邮箱的验证,忘记密码的用户可以修改自己的密码
3.可以修改自己的密保问题,并且可以自己定义密保问题
4.可以修改发送的字体颜色,并且在信息栏目可以显示自己的用户信息
4、系统设计
4.1系统功能结构
本系统中主要包括两个部分:
服务器端和客户端。
(1)服务器端的功能包括:
①验证登录:
检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。
就将在线用户发给该用户,并将该用户的状态发给各在线用户。
同时在服务器端显示出来。
②处理注册信息:
用户提交注册信息后,自动验证是否重名,如果重名则返回提示,
如果不重名则将信息加入数据库。
③发布系统消息:
将此用户上线、下线消息发给各客户端,并在服务器端显示在线用户信息。
④保存聊天记录:
在接收到用户保存聊天记录申请的同时自动保存聊天记录为文本文件。
服务器功能结构如下图1-1所示:
图1-1服务器端功能结构图
(2)客户端的功能包括:
①用户登录:
建立与服务器的连接并登陆,能显示登陆错误信息。
②用户注册:
建立与服务器连接并提交注册信息,注册成功后自动登录。
③界面显示:
登录成功后,自动显示在线用户列表。
④发送消息:
选择要发送对象后,可以发送文本消息或者文件。
⑤接收消息:
收到其他用户消息后,提醒并显示。
接收文件时可以选择接收或拒绝。
⑥聊天记录的保存:
用户下线前自动向服务器发送申请保存聊天记录。
客户端功能结构如下图2-2所示。
图2-2客户端功能结构图
4.2系统业务流程分析
首先又服务器开启服务,监听局域网中客户端的连接请求,客户端连接后,登陆或者处理注册信息,并返回操作结果,客户端注册或者登陆成功后,显示聊天窗体,此时各客户端将自主的监听局域网中的用户,实时更新自己的用户列表并显示,各个客户端之间的信息交流不再通过服务器转发,而是自主通信。
局域网聊天系统的业务流程图如图3-3所示。
图3-3系统业务流程图
4.3数据库设计
(1)数据库表的设计
系统需求主要体现在用户的注册、登录、发送消息、接收消息、聊天记录的保存等方面,而本系统发送消息,接收消息,聊天记录保存均有客户端自主完成,因此不需要体现在数据库中,这样数据库只需储存用户的信息即可。
所以只需要建立1个表:
用户表。
(2)存储过程和触发器的设计存储过程是指将常用的;登录验证(loginProcedure):
在用户;用户注册(regProcedure):
用户注册时;5、总结;通过这次开发,我第一次深入的去思考一个软件的构成;我充分认识到开发前的需求分析、框架设计、技术选择;参考文献;(美)特罗尔森(AndrewTroelsen).;刘骏,颜钢锋.基于Socket的网络编程
(2)存储过程和触发器的设计存储过程是指将常用的或复杂的数据库操作,预先用sql语句写好并用一个指定的名称存储在数据库中,以后在调用存储过程时,只需要指定存储过程的名称和参数即可。
本系统主要有登录验证、用户注册两个存储过程。
登录验证(loginProcedure):
在用户登录时,由服务器调用,验证用户的用户名和密码是否正确。
用户注册(regProcedure):
用户注册时,由服务器调用添加新用户。
5、总结
通过这次开发,我第一次深入的去思考一个软件的构成与实现,以前网上聊QQ的时候从来没想过如何实现它的功能,等到让自己来做的时候发现其中任何一个环节都很重要。
整个设计过程是不断学习,不断发现问题、分析问题、解决问题的过程。
使我受益良多。
设计期间有许多的感触、想法、经验,教训,对以后的学习、工作有很大的益处。
我充分认识到开发前的需求分析、框架设计、技术选择等环节是多么重要,如果这些前期工作分析充分、设计良好,考虑周全,将会大大提高开发人员的开发效率,使开发思路更明确,开发过程更简单,同时也可避免一些不必要的错误。
本设计在查阅了大量的文献后进行理论研究的同时,借鉴了其他聊天程序的功能、吸取了其他聊天程序的优缺点,利用TCP/IP协议中的TCP协议,即面向连接的服务,进行数据的传输,对网络中数据的传输过程。
但由于知识的不足,很多方面还是做得不够好,以后会好好努力的。