欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java聊天室程序设计实验报告.docx

    • 资源ID:4585671       资源大小:406.38KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java聊天室程序设计实验报告.docx

    1、java聊天室程序设计实验报告 JIANGXI AGRICULTURAL UNIVERSITYJAVA课程设计报告题目: 聊天室程序设计 学 院: 姓 名: 学 号: 专 业: 年 级: 指导教师: 2011 年 12 月一、系统需求分析1、课题背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。本课程适用于软件工程等本科专业。参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终

    2、课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。2、功能要求 运用java程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt包,java.swing包以及java.util包等。程序实现了聊天室的基本功能,其中有:1、启动服务器。2、进入客户端界面。3、登录聊天室。4、发送信息(实现按回车键发送消息)。5、关闭服务器。3、运行环境本程序基于java和UltraEdit开发环境,可以在一般的装有windows系统的主机上运行。4、功能实现1、采用套接字实现网络中的数据传输2、尽量使用

    3、某个或某些应用层的协议实现系统的部分功能3、系统设计规范合理,操作流程方便简单二、系统总体设计1、设计思路聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。1首先通过继承JFrame类

    4、构造服务器界面。2设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。3设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。2、各个模块详细的功能描述。1、服务器端功能描述:启动服务器端。2、客户端功能描述: 启动客户端;显示登录昵称:显示系统时间:显示聊天记录:发送信息(实现按回车键发送消息);退出聊天室。三、系统详细设计1、界面设计主要由类ChatRoom来实现,界面实际总体如下:输入昵称的文本框,输入IP地址的文本框以及输入端口的文本框(可设置背景色);侦听,连接的按钮(可设置字体);推出按钮;接受消息的文本域

    5、(可设置前景色);发送消息文本框;发送按钮;插入图片。2、详细代码设计聊天室程序设计详细代码如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;import java.util.*;public class ChatRoom extends JFrame implements ActionListener, Runnable,KeyListener Image Image; private TextArea ta; private JTextField ip;

    6、private JTextField port; private JButton ss_server; private JButton ss_client; private JTextField send_text; private JTextField name; private JButton ss_send; private JButton ss_exit; private Socket skt; public void keyReleased(KeyEvent f) public void keyPressed(KeyEvent f) if(f.getKeyCode()= KeyEve

    7、nt.VK_ENTER) try PrintWriter pw = new PrintWriter(skt.getOutputStream(); String s1=name.getText(); String s = send_text.getText(); if(s=null) return; Calendar ca= new GregorianCalendar(); int hh = ca.get(Calendar.HOUR_OF_DAY); int mm = ca.get(Calendar.MINUTE); int ss = ca.get(Calendar.SECOND); Strin

    8、g time = new String(hh + : + mm + : + ss + ); ta.append(time+s1+说:+n+s+n); String s3=time+s1+说:+n+s; pw.println(s3); pw.flush(); send_text.setText(); catch(Exception e) ta.append(发送失败!n); public void keyTyped(KeyEvent f) public void run() try BufferedReader br = new BufferedReader(new InputStreamRea

    9、der(skt.getInputStream(); while(true) String s = br.readLine(); if(s=null) break; ta.append(s + n); catch(Exception e) e.printStackTrace(); public void actionPerformed(ActionEvent e) if(e.getSource()=ss_server) doServer(); if(e.getSource()=ss_client) doClient(); if(e.getSource()=ss_send) doSend(); i

    10、f(e.getSource()=ss_exit) doexit(); public void doServer() try ServerSocket server = new ServerSocket(Integer.parseInt(port.getText(); skt = server.accept(); ta.append(连接服务器成功!n); new Thread(this).start(); catch(Exception e) ta.append(服务器启动失败!n); public void doClient() try skt = new Socket(ip.getText

    11、(), Integer.parseInt(port.getText(); ta.append(连接服务器成功!n); new Thread(this).start(); catch(Exception e) ta.append(连接失败!n); public void doSend() try PrintWriter pw = new PrintWriter(skt.getOutputStream(); String s1=name.getText(); String s = send_text.getText(); if(s=null) return; Calendar ca= new Gr

    12、egorianCalendar(); int hh = ca.get(Calendar.HOUR_OF_DAY); int mm = ca.get(Calendar.MINUTE); int ss = ca.get(Calendar.SECOND); String time = new String(hh + : + mm + : + ss + ); ta.append(time+s1+说:+n+s+n); String s3=time+s1+说:+n+s; pw.println(s3); pw.flush(); send_text.setText(); catch(Exception e)

    13、ta.append(发送失败!n); public void doexit() System.exit(0); public ChatRoom() Panel a1 = new Panel(); Panel a2 = new Panel(); Panel a3 = new Panel(); this.setTitle(聊天室); this.setBounds(200,200,600,500); Container cc = this.getContentPane(); JPanel p1 = new JPanel(); cc.add(p1, BorderLayout.NORTH); p1.se

    14、tBackground(new Color(200,200,250); ta = new TextArea(); cc.add(ta, BorderLayout.CENTER); JPanel p2 = new JPanel(); cc.add(p2, BorderLayout.SOUTH); p2.setBackground(new Color(250,150,200); ta.setForeground(new Color(0,0,250); JLabel p3 = new JLabel(new ImageIcon(2010.jpg); cc.add(p3, BorderLayout.EA

    15、ST); p1.add(new JLabel(昵称:); name=new JTextField(,6); p1.add(name); name.setFont(new Font(宋体,Font.BOLD,14); p1.add(new JLabel(IP: ); ip = new JTextField(127.0.0.1, 15); p1.add(ip); p1.add(new JLabel(Port: ); port = new JTextField(7777, 4); p1.add(port); ss_server = new JButton(侦听); ss_server.setFore

    16、ground(new Color(150,100,250); ss_server.setFont(new Font(宋体,Font.BOLD,14); p1.add(ss_server); ss_client = new JButton(连接); ss_client.setForeground(new Color(150,100,250); ss_client.setFont(new Font(宋体,Font.BOLD,14); p1.add(ss_client); ss_exit = new JButton(退出); ss_exit.setForeground(new Color(150,1

    17、00,250); ss_exit.setFont(new Font(宋体,Font.BOLD,14); p1.add(ss_exit); p2.setLayout(new BorderLayout(); p2.add(new JLabel(发送消息:),BorderLayout.WEST); p2.setBackground(new Color(200,200,250); send_text = new JTextField(在?); p2.add(send_text, BorderLayout.CENTER); ss_send = new JButton(发送); p2.add(ss_sen

    18、d, BorderLayout.EAST); ss_exit.addActionListener(this); send_text.addKeyListener(this); ss_server.addActionListener(this); ss_client.addActionListener(this); ss_send.addActionListener(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) new ChatRoom().setVisibl

    19、e(true); 四、出现的问题以及解决办法1、书上的关于系统时间的显示在本程序中会出错,于是通过在网上找的一种方法实现了系统时间的显示,将其输出到客服端显示;2、关于实现用回车键发送消息,一开始在最后忘记添加一个addKeyListener监听器,运行结果没有达到预期效果。后经过与同学讨论交流成功实现。3、有时是关联问题,以及输出显示格式,获取信息一些细节步骤如果出错就会产生意想不到的错误,无法解决,还越改越乱。所以要养成一步一步的修改,避免不可恢复,造成重大的损失。五、运行结果1、连接服务器2、发送消息3、退出程序聊天程序运行成功!六、小结这次设计经过长期的不懈努力,程序基本满足聊天的需要

    20、。完成后的程序实现了用户登陆聊天室、用户在线聊天、用户退出等功能。程序设计期间,通过询问老师,同学和网上搜索相关解答等多种方式学习到很多课堂上没有的知识,还积累了一定的实践经验,增强了动手能力和解决实际问题的能力。在此之前,对于Java编程技术或网络socket编程知识都只是略知皮毛,缺乏深入的认识,对其工作方式和原理缺乏透彻的认识。在这段时间里,我认真学习了Java语言开发,Applet小程序实现,对编程思想有了进一步的体会,养成了一些良好的编程习惯。程序虽然完成,但是距离优秀仍存在一定差距,用JAVA开发大型项目还有很多我需要去努力学习的知识。希望自己能不断学习和实践,争取以后做得更好。限于我的知识水平和经验有限,此程序还有许多有待完善和改正的地方,恳请老师批评指正。


    注意事项

    本文(java聊天室程序设计实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开