




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络软件开发综合课程设计报告专 业 计算机科学与技术 班 级 学 生 指导教师 2013 年 秋季 学期12报告提纲一、 设计题目(或目的)设计题目:网络聊天软件设计与实现设计目的:网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识,为此,我们可以做到:1. 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。2. 进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。3. 通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。二 设计开发环境(1)使用eclipse平台实现改程序的编写。(2)要求用户操作时,要给出清晰,明确的提示信息。(3)所有文件、函数、变量的名称尽量做到见其名知其意的特点三 设计原理1、实现思想在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。2、服务器端工作流程服务器端通过socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。3、客户端工作流程客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。(如有图需要有题目及编号)四 系统设计设计思想:整个系统分为服务器和客户端,服务器端维护各个客户端的信息。客户端的所有信息发往服务器端,再由服务器进行消息的分析处理并做出相应的控制,服务器端是所有信息的中心。服务器端可以查看所有用户的聊天记录,监控所有用户的状态,发出用户上线、离线提示等公告,客户端则提供接收公告的功能。本课程设计按照系统的具体功能要求,首先应用Socket编程创建客户端和服务器端,每多个客户端服务器端就会相因的创建一个线程,它们之间通过这个连接来实现数据通信;然后在客户端设置一个监听器,用于监听服务器发来的消息。并根据消息做出不同的动作。局域网聊天系统系统功能该系统实现了用户之间的点对点单人聊天,在线用户之间的群聊。为了加强之间的信息交流,还实现了用户之间文件传输、语音聊天。在客户端和服务器端都可以查看历史消息、保存消息、清空消息。为了监控用户之间的状态,服务器还可以实现踢掉用户的功能,同时用户时间文件传输的信息都会在服务器上显示。系统架构1)选择传输控制协议TCP,使用Java的Socket编程机制,分别建立客户端与服务器端、语音传输使用的是UDP控制协议;2)分别设计客户端与服务器端的界面,并使用Java应用程序用户界面的开发工具包Swing进行窗体界面的布局,以及实现部分窗口事件的相应。 模块设计 服务器端:主要实现向各个客户端发布系统消息,接受来自客户端的各种信息并分别处理。具体功连接控制: 包括启动服务器、断开服务器以及断开某个客户端的连接;管理作用: 包括对参与聊天者的昵称进行修改以及向所有或某个客户端发送消息,维护一个IP地址和昵称所对应的哈希表,以便定位到正确的客户端,且有权强制修改用户昵称;刷新列表: 在有用户登陆或离开的时候实时更新列表,并将信息反馈到各个客户端; 登陆信息: 检查用户是否已登陆,如登录,发消息通知所有用户。同时刷新在线用户列表;聊天记录: 能保存聊天记录,实现消息的保存、清空以及查看等功能;消息处理: 解析客户端与服务器端的消息交互类型,并做出相应处理,能够找到消息所对应的接收端。 客户端:主要实现向服务器端发布消息,并且对来自服务器的消息做出相应的响应。具体功能如连接功能: 输入服务器地址,实现登录及断开功能登录设置: 登录时,发送消息使服务器端获得相关登录信息,昵称及IP地址记录到服务器端维持的哈希表,断开后发送消息使IP地址及昵称从哈希表中删除;监听作用: 实现对服务器发送过来的消息进行监听的功能;消息处理: 接收由服务器端发送来的信息,并做出相应的响应;聊天记录: 实现聊天记录的保存、清空以及查看等功能;消息处理: 相应从服务器端接收到的消息交互类型,实现用户与用户之间的信息交(如有图需要有题目及编号)五 系统实现1 界面 注册界面登陆界面两人聊天群聊与监听2 主要代码package com.qq.main;import java.awt.Color;import java.awt.Dimension;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;import com.qq.regist.Regist;import com.qq.regist.UserInformation;/* * QQ的主界面 * * param args */public class Main extends JFrame private JLabel userId;private JLabel userPassword;private JTextField inputId;private JPasswordField inputPassword;private JButton btLogin;private JButton btRegist;Main() userId = new JLabel(帐号);userPassword = new JLabel(密码);inputId = new JTextField(6);/ 疑问:?inputPassword = new JPasswordField();btLogin = new JButton(登陆);btRegist = new JButton(注册);/ 设置窗体属性Toolkit tk = Toolkit.getDefaultToolkit();Dimension screenSize = tk.getScreenSize();int x = (int) screenSize.getWidth();int y = (int) screenSize.getHeight();this.setBounds(x - 240) / 2, (y - 600) / 2, 240, 600);this.setResizable(false);this.setLayout(null);this.setBackground(Color.BLACK);/ 疑问?this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 设置JLabel属性userId.setBounds(30, 160, 40, 20);userPassword.setBounds(30, 200, 40, 20);/ 设置文本域属性inputId.setBounds(90, 160, 100, 20);inputPassword.setBounds(90, 200, 100, 20);inputPassword.setEchoChar(*);/ 设置JButton属性btLogin.setBounds(50, 240, 60, 20);btRegist.setBounds(120, 240, 60, 20);/ 注册登陆按钮监听器btLogin.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) UserInformation user = new UserInformation();String userName = inputId.getText();String userPassword = new String(inputPassword.getPassword();if (userName.equals() JOptionPane.showMessageDialog(null, 用户名不能为空); else if (.equals(userPassword) JOptionPane.showMessageDialog(null, 密码不能为空); else if (user.isExist(userName)& user.userInfomation.getProperty(userName).equals(userPassword) / 判断成功后new一个群聊窗口new AllTalkFrame(userName).setVisible(true);Main.this.dispose(); else JOptionPane.showMessageDialog(null, 此用户名不存在或者密码不正确););/ 注册注册按钮监听器btRegist.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new Regist(););this.add(userId);this.add(userPassword);this.add(inputId);this.add(inputPassword);this.add(btLogin);this.add(btRegist);this.setVisible(true);public static void main(String args) new Main();六 小结 在几天的学习中,学会了java的初级方法,例如:配JDK环境,写一个简单的JAVA程序,能过准确无误的编译,执行.。还有老师给我们出的题目,更快的加步了我们的java知识的学习,其实我也懂得了以前不知道的很多知识,同时我们也有了自己的学习划
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州2025年福建福州市中医院招聘9人笔试历年参考题库附带答案详解
- 2020年四级人力资源管理师考试《理论知识》真题及解析汇编
- 高级安保服务协议书(2篇)
- 三年级英语下册-U6 课件 Unit 6Phonics
- 2025年关于小班体育标准教案
- 影像学对感染病的早期发现与处理
- 2025年环境影响评价工程师考试真题汇编(环境影响评价案例分析解析)
- 2025年征信考试题库:征信行业发展趋势与信用风险管理实践案例研究方法试题
- 2025年危险化学品安全生产培训教材试题库
- 2025年成人高考《语文》逻辑思维训练题库及解析
- 2025年通信安全员ABC证新版试题(附答案)
- 2025高考数学一轮复习-第10章-第8节 二项分布、超几何分布与正态分布【课件】
- 2025年中国模数转换器(ADC)行业市场前瞻与投资战略规划分析报告
- 光肩星天牛防治技术规程 DB23-T 2625-2020 黑龙江
- 进化医疗-跨物种肿瘤基因治疗的开拓者
- 法理学复习题+答案
- 信息化系统平台试运行方案
- 统编版(2024新版)七年级下册道德与法治期末复习背诵知识点提纲
- 《认知理论》课件
- 2024年度宁夏回族自治区国家电网招聘之环化材料类题库检测试卷B卷附答案
- 《冠心病护理》课件
评论
0/150
提交评论