论文部分内容阅读
摘 要:本文研究的网络聊天系统主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面,通过套接字(socket)来连接发送消息,同时通过直接继承Thread类来建立多线程,使得更多的人参与聊天,从而拉近人与人之间的距离,实现消息最大资源共享。真正实现沟通零距离。
关键词:网络编程;即时通讯;套接字;多线程
中图分类号:TP311.10
自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。即时通讯软件使人与人的沟通突破时空极限,突破环境极限,使自我突破心理极限。作为使用频率最高的网络软件,即时通讯已经突破了作为技术工具的极限,被认为是现代交流方式的象征,并构建起一种新的社会关系,通过对聊天工具的开发,我们将了解计算机如何通过网络相互通信以及在此相互通信的基础上实现的应用程序级的协议。
1 需求分析
根据用户了解和市场需求,所以此系统主要分为两大部分:一是客户端,另一部分是服务器端。
1.1 客户端方面设置
客户端模仿QQ聊天系统,实现简单的QQ功能:注册账号、登陆QQ、查找好友、添加好友、删除好友、聊天功能、传输文件功能。
(1)注册账号。用户通过客户端向服务器申请一个新的JAVAQQ账号,主要输入自己的的一些基本资料,如昵称(nickname)、邮箱(E-MAIL)、密码(password)、个性签名(personalixed signed),即可申请账号;(2)登陆QQ。即是用户通过自己申请的账号,想服务端请求登入,服务端验证通过,则可以进入JAVAQQ界面,如果密码或账号出错,则提示并返回登陆界面;(3)查找好友:。用户进入QQ后,通过查找按钮查找自己需要的好友,其中查找有两种方式,一是查看所有在线用户,而是通过JAVAQQ账号查找;(4)添加好友。用户通过查找出自己需要的客户,向服务器申请将他们添加为自己的好友,服务器通过添加好友申请发送请求,双方互添好友;(5)删除好友。在现实中,用户不需要某个好友时,可以向服务器发送删除好友申请,服务器通过申请,删除自己的好有成功;(6)聊天功能。顾名思义,两用户之间进行文字的交流;(7)文件传输。用户向另一用户传输文件,一开启本系统,监听系统就会启动,查看是否有好友发送传输请求,当双方需要传输文件时,用户需键入目标的IP和端口,对方拒绝接受则关闭系统退出,对方接受发送请求,则打开一新窗口填入存储位置,发送完成时,提示用户已发送,退出系统。
1.2 服务器端设置
服务器端主要实现的功能是开启(关闭)服务器、配置文件、用户管理、在线用户管理、日志显示管理等。(1)开启(关闭)服务器。打开或者关闭服务器连接;(2)文件配置。对JAVAQQ的号码进行管理,即生成一个新的JAVAQQ号码位数、屏蔽号码保存日志等;(3)用户管理。显示所有的JAVAQQ用户,查询JAVAQQ用户;也分为两种查找一是按JAVAQQ号码,另一个是按昵称查找。刷新用户列表;(4)群发消息。即群发系统广播消息,只针对在线用户;(5)日志显示。显示用户登入退出的基本消息。
2 功能设计
2.1 功能划分
(1)服务器端功能。启动和关闭服务,配置属性文件,用户管理,在线用户查询,查看系统日志;(2)客户端功能。网络设置,注册账号,查找好友,添加好友,删除好友,查看好友资料,与好友进行文本聊天,给好友传输文件等。
2.2 功能描述
2.2.1 客户端
(1)用户初始化模块。本模块主要完成的任务是用户通过账号、密码登陆系统,若数据在数据库中不存在,则需要用户进行注册;(2)注册操作。1)功能描述:注册一个新的JAVAQQ账号。2)输入要素:昵称、E-Mail、密码、性别、姓名、个性签名。3)处理流程:通过用户名、密码写入数据库;(3)查找操作。1)功能描述:查询用户输入的用户名、密码在数据据中是否有记录。2)输入要素:用户名、密码。3)处理流程:通过用户名,密码到数据库中查询该用户的信息;(4)聊天功能。1)功能描述:通过用户加入的好友与好友进行点对点聊天。2)输入要素:用户聊天消息。3)处理流程:通过服务器将用户聊天消息进行传递;(5)传输文件。1)功能描述:通过好友提供的IP给对方点对点的传输文件。2)输入要素:IP地址。3)处理流程:TransFileManger类继承了Thread类,实现多线程,并通过传输线程(SocketThread)的数量进行文件传输。
2.2.2 服务器端的具体描述
(1)用户初始化模块。本模块主要完成的任务是系统管理员开启服务器端。1)功能描述:启动服务器。2)输入要素:无。3)处理流程:调用StartServer()和StopServer()方法来启动和关闭服务器;(2)系统环境配置功能。1)功能描述:设置服务器的端口、生成JAVAQQ的数位、屏蔽号码、备份日志等。2)输入要素:服务器端口、生成JAVAQQ的最小数位和最大数位、要屏蔽的号码、日志的备份、数据方式的选择1文件方式,2数据库方式。3)处理过程:调用setProp()方法设置配置文件;(3)用户管理功能。1)功能描述:该模块主要的功能是进行好友的查询,刷新用户列表、添加新用户。2)输入要素:用户号码、用户昵称。3)处理流程:通过用户昵称或者号码到数据库中查询该用户信息;(4)在线用户管理功能。1)功能描述:显示目前在线的JAVAQQ用户,通过用户的账号查询用户是否在线,刷新在线用户的列表、并通过服务器向所有在线用户发送系统广播。2)输入要素:用户的JAVAQQ账号、消息文本。3)处理流程:选择用户的账号,查看账号的状态;(5)文件传输管理。1)输入流程:所传输的文件的文件名和大小。2)处理流程:由文件发送者发起文件传输,他首先发送文件名,文件大小,验证消息等信息给文件接收者。文件接收者收到文件信息和发送者信息,决定是否接收,如不接收,则发送拒绝接收消息给文件发送者,文件传输结束。如同意接收,发送同意接收消息和文件传输起始字节(用于断点续传)给发送者。发送者开始发送文件数据包,直到最后一个文件数据包,发送者在最后一个文件数据包上加上标记。接收者识别最后一个文件数据包,文件传输成功。
3 结束语
与已成规模的腾讯QQ相比,该系统还存在着太多的不足,因为是本文研究的网络聊天系统功能方面比较简单,缺少部分功能:如视频、语音聊天等附属功能。但相对的来说此聊天系统更简约,操作方便,且可以在局域网内实现网络聊天功能。
参考文献:
[1]叶核亚.JAVA程序设计使用教程(第二版)[M].北京:电子工业出版社,2008.
[2]孙卫琴.JAVA网络编程精解[M].北京:电子工业出版社,2007.
作者单位:广西科技大学鹿山学院,广西柳州 545616
关键词:网络编程;即时通讯;套接字;多线程
中图分类号:TP311.10
自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能,人们越来越离不开计算机了。如今,作为网络应用之一的聊天工具,越来越受到人们的欢迎和重视。即时通讯软件使人与人的沟通突破时空极限,突破环境极限,使自我突破心理极限。作为使用频率最高的网络软件,即时通讯已经突破了作为技术工具的极限,被认为是现代交流方式的象征,并构建起一种新的社会关系,通过对聊天工具的开发,我们将了解计算机如何通过网络相互通信以及在此相互通信的基础上实现的应用程序级的协议。
1 需求分析
根据用户了解和市场需求,所以此系统主要分为两大部分:一是客户端,另一部分是服务器端。
1.1 客户端方面设置
客户端模仿QQ聊天系统,实现简单的QQ功能:注册账号、登陆QQ、查找好友、添加好友、删除好友、聊天功能、传输文件功能。
(1)注册账号。用户通过客户端向服务器申请一个新的JAVAQQ账号,主要输入自己的的一些基本资料,如昵称(nickname)、邮箱(E-MAIL)、密码(password)、个性签名(personalixed signed),即可申请账号;(2)登陆QQ。即是用户通过自己申请的账号,想服务端请求登入,服务端验证通过,则可以进入JAVAQQ界面,如果密码或账号出错,则提示并返回登陆界面;(3)查找好友:。用户进入QQ后,通过查找按钮查找自己需要的好友,其中查找有两种方式,一是查看所有在线用户,而是通过JAVAQQ账号查找;(4)添加好友。用户通过查找出自己需要的客户,向服务器申请将他们添加为自己的好友,服务器通过添加好友申请发送请求,双方互添好友;(5)删除好友。在现实中,用户不需要某个好友时,可以向服务器发送删除好友申请,服务器通过申请,删除自己的好有成功;(6)聊天功能。顾名思义,两用户之间进行文字的交流;(7)文件传输。用户向另一用户传输文件,一开启本系统,监听系统就会启动,查看是否有好友发送传输请求,当双方需要传输文件时,用户需键入目标的IP和端口,对方拒绝接受则关闭系统退出,对方接受发送请求,则打开一新窗口填入存储位置,发送完成时,提示用户已发送,退出系统。
1.2 服务器端设置
服务器端主要实现的功能是开启(关闭)服务器、配置文件、用户管理、在线用户管理、日志显示管理等。(1)开启(关闭)服务器。打开或者关闭服务器连接;(2)文件配置。对JAVAQQ的号码进行管理,即生成一个新的JAVAQQ号码位数、屏蔽号码保存日志等;(3)用户管理。显示所有的JAVAQQ用户,查询JAVAQQ用户;也分为两种查找一是按JAVAQQ号码,另一个是按昵称查找。刷新用户列表;(4)群发消息。即群发系统广播消息,只针对在线用户;(5)日志显示。显示用户登入退出的基本消息。
2 功能设计
2.1 功能划分
(1)服务器端功能。启动和关闭服务,配置属性文件,用户管理,在线用户查询,查看系统日志;(2)客户端功能。网络设置,注册账号,查找好友,添加好友,删除好友,查看好友资料,与好友进行文本聊天,给好友传输文件等。
2.2 功能描述
2.2.1 客户端
(1)用户初始化模块。本模块主要完成的任务是用户通过账号、密码登陆系统,若数据在数据库中不存在,则需要用户进行注册;(2)注册操作。1)功能描述:注册一个新的JAVAQQ账号。2)输入要素:昵称、E-Mail、密码、性别、姓名、个性签名。3)处理流程:通过用户名、密码写入数据库;(3)查找操作。1)功能描述:查询用户输入的用户名、密码在数据据中是否有记录。2)输入要素:用户名、密码。3)处理流程:通过用户名,密码到数据库中查询该用户的信息;(4)聊天功能。1)功能描述:通过用户加入的好友与好友进行点对点聊天。2)输入要素:用户聊天消息。3)处理流程:通过服务器将用户聊天消息进行传递;(5)传输文件。1)功能描述:通过好友提供的IP给对方点对点的传输文件。2)输入要素:IP地址。3)处理流程:TransFileManger类继承了Thread类,实现多线程,并通过传输线程(SocketThread)的数量进行文件传输。
2.2.2 服务器端的具体描述
(1)用户初始化模块。本模块主要完成的任务是系统管理员开启服务器端。1)功能描述:启动服务器。2)输入要素:无。3)处理流程:调用StartServer()和StopServer()方法来启动和关闭服务器;(2)系统环境配置功能。1)功能描述:设置服务器的端口、生成JAVAQQ的数位、屏蔽号码、备份日志等。2)输入要素:服务器端口、生成JAVAQQ的最小数位和最大数位、要屏蔽的号码、日志的备份、数据方式的选择1文件方式,2数据库方式。3)处理过程:调用setProp()方法设置配置文件;(3)用户管理功能。1)功能描述:该模块主要的功能是进行好友的查询,刷新用户列表、添加新用户。2)输入要素:用户号码、用户昵称。3)处理流程:通过用户昵称或者号码到数据库中查询该用户信息;(4)在线用户管理功能。1)功能描述:显示目前在线的JAVAQQ用户,通过用户的账号查询用户是否在线,刷新在线用户的列表、并通过服务器向所有在线用户发送系统广播。2)输入要素:用户的JAVAQQ账号、消息文本。3)处理流程:选择用户的账号,查看账号的状态;(5)文件传输管理。1)输入流程:所传输的文件的文件名和大小。2)处理流程:由文件发送者发起文件传输,他首先发送文件名,文件大小,验证消息等信息给文件接收者。文件接收者收到文件信息和发送者信息,决定是否接收,如不接收,则发送拒绝接收消息给文件发送者,文件传输结束。如同意接收,发送同意接收消息和文件传输起始字节(用于断点续传)给发送者。发送者开始发送文件数据包,直到最后一个文件数据包,发送者在最后一个文件数据包上加上标记。接收者识别最后一个文件数据包,文件传输成功。
3 结束语
与已成规模的腾讯QQ相比,该系统还存在着太多的不足,因为是本文研究的网络聊天系统功能方面比较简单,缺少部分功能:如视频、语音聊天等附属功能。但相对的来说此聊天系统更简约,操作方便,且可以在局域网内实现网络聊天功能。
参考文献:
[1]叶核亚.JAVA程序设计使用教程(第二版)[M].北京:电子工业出版社,2008.
[2]孙卫琴.JAVA网络编程精解[M].北京:电子工业出版社,2007.
作者单位:广西科技大学鹿山学院,广西柳州 545616