毕业论文-基于java的即时通信软件设计与实现内容摘要:

e finally dbutilcloseAll return false 发送登陆信息的代码方法如下 public static void sendLogin LoginModel lm try socket newSocket FinalFileSER_IP FinalFileSER_LOGIN_PORT objout new ObjectOutputStream socketgetOutputStream objoutwriteObject lm catch UnknownHostException e TODO Autogenerated catch block eprintStackTrace catch IOException e TODO Autogenerated catch block eprintStackTrace finally closeAll 如果上面的验证登陆成功后那么就进入登陆成功这一环节此时用 JFrame 类写一个客户端好友界面 ClientFrame 在这个好友界面里添加好友模型 FriendPanel 获取头像姓名签名并在好友界面里添加监听好友模型线程类 FriListListener 好友状态改变线程类 ChangeFriTypeListener 以及消息线程 MesListener 好友模型线程是为了获取好友的信息好友状态改变线程是为了监听好友的装太多改变消息线程是为了获取好友的消息 好友模型线程 FriListListener 类主要是显示好友列表到界面 ArrayList friList ArrayList objinreadObject wingetFrisPanel setFrisView friList wingetFrisPanel repaint wingetContentPane repaint winvalidate 好友状态改变线程类 ChangeFriTypeListener 类主要是将该边状态的好友重新显示在好友列表客户端并对改变了的好友不断的刷新这部分功能代码如下 LogUnLogModel cm LogUnLogModel objinreadObject ArrayList fpList wingetFrisPanel getFriPanList for FriendPanel friendPanel fpList if friendPanelgetFriModel getnum cmgetChangenum friendPanelgetFriModel setLogtype cmgetLogType friendPanelgetPicLab setIcon friendPanelgetImage break 54 添加好友删除好友修改 个人资料模块 用户点击添加好友按钮这时会弹出一个添加好友画面用户把自己要添加的好友写入到文本框里客户端将其封装然后交给服务器将好友添加到好友表里同时刷新客户端界面可以实现添加好友删除好友将删除的好友获取后从好友表中删除同时刷新界面即可修改个人资料是将自己的新昵称新签名新密码获取然后在用户表中更新同时刷新客户端界面便可实现设置个人信息 添加好友的主要代码为 public void addFriend int num1int num2 String sql insert into friends values sq_firnextval num1 num2 dbutilexecuteDML sql 删除好友的主要代码为 public void deleteFri int num1int num2 String sql delete from friends where num num1and frinum num2 dbutilexecuteDML sql 修改个人资料的代码为 public void updateInfo String nameint numString desc String pass String sql1 update user set desc desc where num num dbutilexecuteDML sql1 String sql update user set pass pass where num num dbutilexecuteDML sql String sql2 update user set name namewhere num num dbutilexecuteDML sql2 55 发送和接收消息模块 聊天流程 用户登录成功后双击好友打开聊天面板并填写聊天内容消息先是由用户发送给服务器然后由服务器转发给好友在这里是有服务器获取到好友的 ip 然后服务器将分装好的消息发送给这个 ip 和这个端口的好友头像闪通好友通过接收消息的端口接收消息就可以实现两个用户之间的聊天聊天流程图如图 9 图 9 聊天流程图 接收消息 登陆成功后对每一个 FriendPanel 添加双击事件类 DoubleClickHandler 双击对方头像后将会出现和对方的一个对话框类 SessionFrame 并对此类的按钮添加一些监听事件通过这个点击获取到对方的信息发送消息主要是通过socket new Socket ipport 将一个消息发送给这个 ip 和端口的好友当然在此之前还要判断好友是否在线如果在线双击这个头像弹出对话框 写一个类 MesListener 用来接收消息但这里必需用一个相同的端口接收消息同时也是将接收到的消息转换成文字流这个时候先判断这个消息对话框是否打开如果这个会话框是打开的那么显示消息显示消息主要是将回话框里的文本文档用 append 添加进来如果这个回话框没有打 开那么必须先闪动头像把消息加入消息列表 发送消息的方法代码为 public static void sendMes MesModel mes String ip int port try socket new Socket ip port objout new ObjectOutputStream socketgetOutputStream objoutwriteObject mes catch UnknownHostException e TODO Autogenerated catch block eprintStackTrace catch IOException e TODO Autogenerated catch block eprintStackTrace finally closeAll 客户端检查消息对话框是否打开以及将消息加入消息列表的主要代码如下 MesModel mes MesModel objinreadObject int frinum mesgetnum for FriendPanel fp wingetFrisPanel getFriPanList if fpgetFriModel getnum frinum if fpgetSession isVisible fpgetSession getJtaG append MesUtilgetMesInfo mes fpgetFriModel getname else fpgetFsPane getMesList add mes fpsetMesPic break 56 关闭客户端 用户点击自己的客户端上的关闭按钮此时需通知服务器下线然后服务删除该用户同时在服务器端重新显示在线用户并发送给登陆用户其在线好友通知下线信息 图 10 关闭客户端 删除登陆用户代码的主要方法为 public void unLoginUser int num String sql delete login where num num dbutilexecuteDML sql 第六章 系统测试 61 系统测试案例 为了检测最总系统的效果本文运用的是 MyElipse 85 软件来进行测试在这里我先自己注册一个账号查看注册功能是否成功然后我用错误的账号和已注册的注册的账号分别进行登录来进行验证去分别查看登录失败效果图登录成功图以及双击好友和好友聊天等功能的实现 62 测试结果和分析 运行程序进入客户端登录界面如图 11 图 11 客户端登录界面图 点击注册按钮就如注册界面得到的注册效果图如图 12 图 12 注册效果图 注册成功后得到的申请账号成功界面如图 13 图 13 申请账号成功界面图 用一个错误的账号或者密码分别输入到账号密 码中进行登录验证这时应该显示密码和账号错误得到的提示如图 14 图 14 登录错误图 然后再用一个正确的账号密码进行登录进行验证显示登录成功好友界面在这个好友界面里添加好友模型 FriendPanel 获取头像姓名签名等客户端好友界面如图 15 图 15 好友界面图 然后双击自己的好友聊天在这里比如双击自己的好友杨飞会弹出和自己好友聊天的界面在这个界面包括了聊天的好友名称时间以及对话内容好友聊天图如图 16 图 16 好友聊天图 第七章 总结与展望 随着科学技术的 发展即时通信系统已经越来越重要所以我很高兴的选择了这样一个毕业设计系统着重研究并实现了网络应用的部分根据实现的情况看具有较友好的聊天界面生成效果以及流畅的网络通信效果生成的聊天室可以达到基本的聊天要求具有较高的研究价值当然该课题讨论的即时通讯系统是定位于内部局域网供小团体内部人员使用的通讯系统 即时通信中最基本的功能就是通过计算机之间的文本数据的互换的形式实现思想的交流和沟通它的优点是方便快捷为人们之间创建了一种新型的廉价的快速的简便的沟通方式 首先本系统完全按照软件工程的瀑布模型进行开发是按照需求分析概要 设计详细设计软件的运行和测试等的结构进行安排的 其次即时聊天系统采用了 CS模型服务器在 CS模型中处于一个中心地位服务器一般同时为多个客户提供服务这就造成了服务器设计的复杂性即时通讯服务器是数据中心它是客户活动的中介需要同时应对众多客户的请求 经过一段时间的学习和工作该即时聊天系统已经实现了网络即时通信工具的主要功能为实现一个崭新的可跨平台的 Java 即时聊天工具打下了基础 参考文献 [1] 尹治本计算机网络及应用教程 [M]成都西南交通大 [2]熊晓敏刘瑛陈惠清基于 Java 的网络即时通讯系统的设计与实现 [J]计算机与现代化 2020 12 8992 [3] 罗军舟黎波涛杨明吴俊黄健 TCPIP协议及网络编程技术北京清华大 [4] Bruce Eckel 著侯捷翻译 Java 编程思想 [M]北京机械工业出版社出版20209 [5] 京丽等数据通信原理 [M]北京北京邮电大 [6] 张虹软件工程与软件开发工具 [M]北京清华大学出版社 2020 [7] BrueeEekelThinkingInJava 第三版 [M]。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。