Java网络聊天室课程设计

上传人:lizhe****0001 文档编号:31225744 上传时间:2018-02-06 格式:DOC 页数:25 大小:358KB
返回 下载 相关 举报
Java网络聊天室课程设计_第1页
第1页 / 共25页
Java网络聊天室课程设计_第2页
第2页 / 共25页
Java网络聊天室课程设计_第3页
第3页 / 共25页
Java网络聊天室课程设计_第4页
第4页 / 共25页
Java网络聊天室课程设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《Java网络聊天室课程设计》由会员分享,可在线阅读,更多相关《Java网络聊天室课程设计(25页珍藏版)》请在金锄头文库上搜索。

1、 课 程 设 计 报 告课程名称 Java 网络编程 课题名称 java 聊天室课程设计 专 业 计算机科学与技术 班 级 计算机 0803 课 程 设 计 任 务 书课程名称 Java 网络编程 课 题 java 聊天室课程设计 一 课程设计的任务和具体要求该项目实训的目的主要是对所学网络知识进行梳理、巩固和提高。通过项目实训熟悉系统开发的基本流程,掌握系统开发的各个环节的要点,培养系统分析和设计的能力,锻炼团队合作精神。具体要求:课程设计任务下达后,研究系统的功能、性能和界面要求,具体安排如下:1、下达项目实训任务,进行需求分析,形成需求分析报告。2、进行总体设计和详细设计,形成详细设计报

2、告,进行系统模块开发。3、全部上机进行系统模块开发和模块测试。4、系统集成和集成测试,撰写系统操作说明书和项目实训总结报告。二 课程设计所需软件、硬件等软件:Windows 2000 以上的操作系统、JDK 开发包、eclipse 开发环境硬件:机房台式计算机目 录一 课程设计的目的1二 需求分析.2三 系统设计.3四 详细设计.5五 总结.9六 参考文献.10七 附录(源代码).111一、课程设计的目的通过此项目实训JAVA 聊天室的设计,实践、总结、回顾了网络编程思想以及编程方法,并通过编写程序来掌握 Java 语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习

3、惯,并增强对程序设计整体思路的把握,理论与时间相结合。本文的主要工作集中在:该课程基于C/S 模式,客户机向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。当用户聊天时,将当前用户名、聊天对象、聊天,内容、聊天语气和是否私聊进行封装,然后与服务器建立 Socket 连接,再用对象输出流包装Socket 的输出流将聊天信息对象发送给服务器端。当用户发送聊天信息时,服务端将会收到客户端用 Socket 传输过来的聊天信息对象,然后将其强制转换为Chat 对象,接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,当每次用户接收到聊天信息后将会开始分析聊天

4、信息然后将适合自己的信息人性化地显示在聊天信息界面上。进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计四大特性的理解,针对 JAVA 语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。2二、 需求分析随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。因此出现了等聊天工具,然而等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的

5、娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于即时通讯、文件共享的专用工具。目前,用于实现单一的即时通讯、文件共享的软件实在太少,而且,它们中大部分都是绝对的 C/S 模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。为此,我们决定开发一个专用于实现两台计算机之间即时通讯、文件共享的软件,以方便两台计算机之间信息的交流。本软件属于点对点连接的,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!因此,这个软件是极具适应性和实用性的即时通讯软件.

6、3三、系统设计系统可以采用任何一种流行的,Java 支持的数据库,本系统采用了Microsoft 公司的 Access 作为后台数据库。通过对现在流行的一些 Icq 的参考,建立数据库,名为 chart,数据库共建立一个表,表中基本信息包括编号,uername,password。(1)用户的基本信息表(表名 userlilst)序号 字段名 含义 数据类型NULL1 编号 用户的编号 int2 username 用户名 文本3 password 用户的密码 文本 其中编号字段为自动增加。 服务器端程序如下: 服务器与客户间通过套接口 Socket(TCP)连接。在 java 中使用套接口相当简

7、单,Java API 为处理套接口的通信提供了一个类 .Socket.,使得编写网络应用程序相对容易服务器采用多线程以满足多用户的请求,通过 JDBC 与后台数据库连接,并通过创建一个 ServerSocket 对象来监听来自客户的连接请求,默认端口为 8888,然后无限循环调用 accept()方法接受客户程序的连接。 客户端程序如下 :客户通过 Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造 BufferedReader,PrintWriter 来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器 accep

8、t()方法返回一个新建的 Socket 对象。客户端然后向服务器发送消息,比如登录,服务器收到来自客户的请求后,针对不同的消息处理请求, 虽然 UDP 不可靠但是对于 icq 可靠性并不太重要,而且 UDP快速,所以客户间发送信息通过 UDP。用户登录时通过类4DatagramPacket 和 DatagramSocket 创建 UDP 包括其本地接受端口以及发送端口。5四、详细设计图 1.1 :服务器端页面图 1.2 :程序运行界面图 1.3 :注册页面6图 1.4 :登陆页面图 1.5:网友 1 页面7图 1.6:网友 2 页面图 1.7:网络涂鸦板颜色面板8图 1.8:聊天记录面板图 1

9、.9:数据库页面1. 服务器端:(Windows 平台)首先应有 java 环境 jdk,建议采用jdk1.5。然后安装 Access 数据库,建立数据库 chart,并且建立表userlist。然后在控制面板中的 ODBC 数据源中设置用户 DSN 数据源TrioMotors 建立与数据库的连接。然后运行程序即可。 2. 客户端:只要有有 java 环境 jdk 就可以建议 jdk1.5。然后运行程序及可。 9五、 总结两周的课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对数据结构的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次

10、课程设计,我巩固所了学过的知识,能用 JAVA 熟练地运用其中的一些,进一步掌握了各个指令的功能是转向。课程设计是对我们所学的这些东西一个综合的运用。在整个程序的编写中,调试占了很大部分的时间。要想写好程序,必须认真对待代码的每一个细节,还必须熟练的掌握各种命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了使用方法,基本达到了能独立阅读、编制和调试一定规模的水平。课程设计是对自己所学知识掌握程度最好的检验,特别是对于一些细节问题。考试还并不能完全的说明什么,因为考题都是一些单个的问题,大多只是知识的某一方面。而课程设计不同,我们要用到很多的单个知识点,把他们综合起来运

11、用到自己的课题当中。学了一个学期的数据结构,现在终于迎来了课程设计,当然是一个很好的锻炼自己的机会。在本次的课程设计也发现了自己很多的缺点不足之处,对于一些细节性的问题老犯错,特别是一个标点的错误,很急人。对于有些知识掌握的不行,有的是模模糊糊的不牢靠,虽然有的东西考试考过,但当它用到实际问题的时候,往往不知道用哪,放哪。实践出真知。课程设计是个实践,虽然实际不长,但给我们对知识的运用,利用都有了很好的发挥。人多力量大这句话是真理啊,不懂得地方问同学,不会的地方也问同学,自己努力的同时跟别人共同进步,这就是合作,学会合作是我们以后必备的重要的一项人际技能。一个程序的完成需要不断地修改才能够得到

12、完善,人生正如那程序一样,只有不断地努力、奋斗、勇往直前,才能够完善自己,做最好的自己。最后感谢同学的帮助,感谢老师的指导!六、参考文献101.Java2 实用教程(第三版 ) 编著者 耿祥义 张跃平 清华大学出版社 20062.Java 编程设计 编著者 刘海杰 中国铁道出版社 20063.Java 网络编程精解 编著者 孙卫琴 电子工业出版社 七、附录11服务器端代码:public static int port=8888;ServerSocket server;Socket client=null;BufferedReader cin=null;PrintWriter cout=null

13、;Thread chartThread=null;JButton runButton=new JButton(运行);JButton stopButton=new JButton(停止);JButton exitButton=new JButton(退出);JButton messageButton=new JButton(发送消息);JTextField serMessage=new JTextField(,25);JPanel p1=new JPanel();JPanel p2=new JPanel();JScrollPane messageScrollPane;JTextArea mes

14、sage=new JTextArea();boolean isRunning=false;public Server()super(网络聊天服务器);p1.add(runButton);p1.add(stopButton);p1.add(exitButton);runButton.addActionListener(this);stopButton.addActionListener(this);exitButton.addActionListener(this);messageButton.addActionListener(this);p2.add(serMessage);p2.add(m

15、essageButton);messageScrollPane=new JScrollPane(message,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,12JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);this.getContentPane().add(p1,North);this.getContentPane().add(p2,South);this.getContentPane().add(messageScrollPane,Center);this.setSize(400,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=runButton)chartThread=new Thread(this);chartThread.start(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号