电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Java网络聊天室课程设计说明书(含源程序)

18页
  • 卖家[上传人]:壹****1
  • 文档编号:430991521
  • 上传时间:2023-01-11
  • 文档格式:DOC
  • 文档大小:262KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、操作系统课程设计报告 目录一 设计要求和目的3二 背景知识4三 客户端设计5四 客户端主要代码6五 设计体会9摘要随着网络信息时代的来临,Internet应用越来越广泛人们越来越习惯于在网上获取和交流信息。据调查显示,80%以上的人上网都会翻开聊天工具来聊天,而几乎每一个年轻人都会去聊天。使用网上聊天已经成为现代年轻人一种新的交往方式。聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。所以有大局部的人会进入聊天室聊天它会给人一个完全自由的聊天世界。因此我们联系所学的操作系统、数据库和MFC知识决定做一个简易的聊天系统。一、 设计要求和目的此课题是实现一个即时通信系统完成 1:进程间通信、并发(同步/互斥)、文件读写 2:内存管理、Dll、Windows消息机制、IO。课题任务分工: 客户端子系统:在客户端系统的功能实现上,可以分为以下几个局部: 1进程信息的输入 系统把用户进程要求发送的信息由键盘输入从文件读取。这局部功能是客户端子系统的根本局部,这个功能是以后各个局部的根底。系统要求做到即能够从其它子系统中共享一局部信息2进程信息的存储: 将进程的信息存储到客户端系统中,以及将发送

      2、的信息保存在文件中,以备以后进程之间通信确认以及查询。 3通信数据的传递及接收: 将客户所发送的信息由客户端由网络传到效劳器端上,并且接受航效劳器返回的接收方发送的信息,然后存储起来。二 背景知识SOCKET Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创立,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由Socket交网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的1 创立Socket;2 翻开连接到Socket的输入/出流;3 按照一定的协议对Socket进行读/写操作;4 关闭Socket. IO技术 阻塞模式 可能造成阻塞的函数有:connect()、accept()、读写函数C/S两端通过Socket机制进行连接(1) 客户端的编程流程: a创立Socket对象,向Server的监听端口请求; b通过

      3、向新Socket中读写数据与Server端通信; c关闭Socket,结束与Server端; (2)效劳器端的编程流程: 1翻开Server Socket,创立一个效劳器型套接字和一个普通套接字,效劳器型套接字在指 定端口为客户端请求的Socket 效劳; 2 等待来自客户端的Client端的请求; 3接收Client端的请求,用返回的Socket建立连接; 4通过向Socket中读写数据来与Client端通信; 5关闭Socket,结束与当前Client端的通信; 6关闭SerketSocket对象结束监听效劳。三 客户端设计客户端主要完成建立连接、消息输入、消息发送、消息存储功能。功能含义如下:1. 建立连接:建立一个ServerSocket连接,不断侦听是否有效劳端连接或者断开连接。2. 消息输入:根据用户输入的消息,将消息显示在屏幕面板上。3. 消息发送:把用户输入的消息作为字符串通过Socket端口发送到效劳器。4. 消息存储:把用户输入的消息存储到data.txt文件中,以便用户以后查阅聊天记录。客户端设计如下:1. 界面设计2. 连接设计3. 接收信息设计4. 用户信息设

      4、计5. 帮助设计客户端用户设计的IP地址和端口号连接到相应的效劳器,通过接收用户输入的消息,然后通过所监听的端口把消息发送到效劳端,由效劳端把消息发送到指定的用户用户连接效劳器1客户端请求连接 客户端通过connect()请求连接,填写端口号以及IP地址,填写自己的信息。2效劳器端响应 效劳器端的监听器监听到客户端的连接请求后,检测后允许客户端连接到效劳器。3给客户端返回信息 连接成功后效劳器返回给客户端连接成功的信息,并且给所有的用户发送用户登录信息。4关闭Socket连接 当以上的程序都正常运行后,需要关闭Socket连接,否那么将会浪费效劳器与客户端之间的资源。5用户退出 当用户退出时,客户端将会用基于Socket的对象输出流发送给效劳器退出对象。 用户退出后应该把用户从在线列表中删除,否那么用户退出用户还在在线列表中,那么该用户下次将会无法登录。 用户退出后将效劳器端监控界面的用户列表更新。否那么用户数据将会不同步。四 客户端主要代码/* * 事件处理 */public void actionPerformed(ActionEvent e) Object obj = e.get

      5、Source();if (obj = userItem | obj = userButton) /用户信息设置/调出用户信息设置对话框UserConf userConf = new UserConf(this,userName);userConf.setVisible(true);userName = userConf.userInputName;else if (obj = connectItem | obj = connectButton) /连接效劳端设置/调出连接设置对话框ConnectConf conConf = new ConnectConf(this,ip,port);conConf.setVisible(true);ip = conConf.userInputIp;port = conConf.userInputPort;else if (obj = loginItem | obj = loginButton) /登录Connect();else if (obj = logoffItem | obj = logoffButton) /注销DisConnect();sho

      6、wStatus.setText();else if(obj = dataItem)tryFile read=new File(data.txt);Desktop.getDesktop().open(read);catch (IOException e1)e1.printStackTrace();else if (obj = clientMessage | obj = clientMessageButton) /发送消息SendMessage();clientMessage.setText();else if (obj = exitButton | obj = exitItem) /退出int j=JOptionPane.showConfirmDialog(this,真的要退出吗?,退出,JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE);if (j = JOptionPane.YES_OPTION)if(type = 1)DisConnect();System.exit(0);else if (obj = helpItem) /菜单

      7、栏中的帮助/调出帮助对话框Help helpDialog = new Help(this);helpDialog.setVisible(true);public void run()while(!socket.isClosed()tryString type = (String)input.readObject();if(type.equalsIgnoreCase(系统信息)String sysmsg = (String)input.readObject();SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); String ly_time = sdf.format(new Date();textarea.append(ly_time);textarea.append(n);textarea.append(系统信息: +sysmsg);else if(type.equalsIgnoreCase(效劳关闭)output.close();input.close();socket.close();textarea.append(效劳器已关闭!n);break;else if(type.equalsIgnoreCase(聊天信息)String message = (String)input.readObject();SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); String ly_time = sdf.format(new Date();textarea.append(ly_time);textarea.append(n);textarea.append(message);tryrecord=new BufferedWriter(new FileWriter(data.txt,true);record.write(ly_time);record.newLine();record.write(message);

      《Java网络聊天室课程设计说明书(含源程序)》由会员壹****1分享,可在线阅读,更多相关《Java网络聊天室课程设计说明书(含源程序)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.