ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:134.22KB ,
资源ID:17029555      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17029555.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java简易聊天工具课程设计报告及代码Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java简易聊天工具课程设计报告及代码Word格式文档下载.docx

1、或是否是某个班的学生(多个班的情况)。验证通过进入主界面,否则给出错误提示。3) 主界面列出该学生好友列表(同班级同学默认全是该生好友,如果是多个班则可以添加别班好友并经对方批准)。4) 即时聊天,选中某个好友,双击打开窗口聊天。如果不在线则服务器等对方上线后转发(此功能属拓展实现)。5) 可以修改自己的登陆密码。6) 题目 2:基于C/S的班级聊天室(群聊)工具(2人) 要求:1. C/S模式,基于Socket实现,服务器端用多线程来处理同时多个客户端连接。2. 数据存储:服务器端存储一个班级的信息;主要存储班级若干学生的基本信息。3. 界面:4. 功能:a) 登陆 输入用户名和密码;b)

2、登陆验证 根据服务器端存储的班级信息,对输入的用户进行验证,看是否存在于该班。c) 主界面应划分几个部分,至少有聊天室窗口部分(显示多人的聊天信息),自身发送聊天信息的窗口部分,聊天室成员列表部分,最好实现在线用户区别显示(此功能属拓展实现)等。进入主界面就可以参与群聊。d) 可以修改自己的登陆密码。题目 3:基于C/S的学生信息管理(1人)实现应用,可以通过网络在客户端对存放在服务器端的学生信息表(至少包含学号、姓名、性别、年龄、籍贯等字段)学生纪录增、删、改、查,并返回结果。要能通过菜单选择功能。基于Socket,多客户端使用多线程,以能同时从多个客户端执行功能。必须提供友好直观、布局合理

3、的图形界面选择功能、显示信息和填写修改信息。成员名单:侯吉超、毛建柏分工列表登陆界面毛建柏修改密码界面侯吉超聊天窗口界面好友界面服务器代码连接数据库课程设计报告1、项目简述和目的 聊天室做为即时通讯的一种,即时通讯(Instant Messenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSN Messenger都是大众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能 。 通过此项目实训JAVA聊天室的设计,

4、实践、总结、回顾了网络编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握,理论与时间相结合。本文的主要工作集中在:该课程基于C/S模式,客户机向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。当用户聊天时,将当前用户名、聊天对象、聊天,内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对

5、象,接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计四大特性的理解,针对JAVA语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。2、解题基本思路当用户聊天时,将当前用户名、聊天对象、聊天内容、群聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。当用户发送聊天信息时,服务端将会收到客户端用So

6、cket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问,具体实现过程如图3-6所示。 接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。 当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。3、分析和设计本系统主要通过客户端,服务

7、器端来体现聊天系统的基本功能。(1)服务器端1.处理用户登录2.处理用户发送信息,服务器监控聊天内容,服务器过滤非法内容3.处理用户得到信息4.处理用户退出 5.保存用户聊天信息。(2)客户端 1.用户登录界面及结果 2.用户发送信息界面及结果 3.用户得到信息界面及结果 4.用户退出界面及结果目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域

8、并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。腾讯的成功与其对QQ的不断创新和完善是分不开的。参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。4、主要程序源代码 客户端主要代码:import java.io.*;import javax.swing.*;import .*;import java.awt.event.*;import java.awt.*;i

9、mport java.text.DateFormat;import java.util.Date;class DL private JFrame f,jf; private Socket s; private PrintWriter p; private BufferedReader br; private TextField text1,text2,t,t1,t2,t3; private JTextField username; private JPasswordField password; private JLabel jl1; private JLabel jl2; private J

10、Button jl3; private JButton jl4; private JButton bu1; private JButton bu2; private JButton bu3; private JCheckBox jc1; private JCheckBox jc2; JTextField jtf1 ; JPasswordField jtf2 ,jtf3,jtf4; private JComboBox jcb; JFrame a2; DL() f=new JFrame(简易通讯软件); / 窗体组件初始化 Container con = f.getContentPane(); j

11、l1 = new JLabel(); / 设置背景图片 Image image1 = new ImageIcon(d:登录2.jpg).getImage(); jl1.setIcon(new ImageIcon(image1); jl1.setBounds(0, 0, 355, 265); / QQ登录头像设定 jl2 = new JLabel(); Image image2 = new ImageIcon(登录.jpg jl2.setIcon(new ImageIcon(image2); jl2.setBounds(40, 95, 50, 60); / 用户号码登录输入框 username

12、= new JTextField(); username.setBounds(100, 100, 150, 20); / 用户号码登录输入框旁边的文字 jl3 = new JButton(注册账号 jl3.setBounds(260, 100, 88, 20); / 密码输入框 password = new JPasswordField(); password.setBounds(100, 130, 150, 20); / 密码输入框旁边的文字 jl4 = new JButton(修改密码 jl4.setBounds(260, 130, 88, 20); / 输入框下方文字 jc1 = new

13、 JCheckBox(记住密码 jc1.setBounds(105, 155, 80, 15); jc2 = new JCheckBox(自动登录 jc2.setBounds(185, 155, 80, 15); jcb = new JComboBox(); jcb.addItem(在线隐身离开 jcb.setBounds(40, 150, 55, 20); / 按钮设定 bu1 = new JButton(登录 bu1.setBounds(280, 200, 65, 20); / bu1.addActionListener( this); / 给按钮添加1个事件 try s=new Sock

14、et(127.0.0.1,62000); p=new PrintWriter(s.getOutputStream(); new DLThread().start(); catch(Exception e) bu1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try p.println(denglu+ +username.getText()+password.getText(); p.flush(); catch(Exception er) ); bu2 = new JButt

15、on(多账号 bu2.setBounds(5, 200, 75, 20); bu3 = new JButton(设置 bu3.setBounds(100, 200, 65, 20); / 所有组件用容器装载 con.add(jl2); con.add(jl3); con.add(jl4); con.add(jc1); con.add(jc2); con.add(jcb); con.add(bu1); con.add(bu2); con.add(bu3); con.add(jl1); con.add(username); con.add(password); jl4.addActionListe

16、ner(new ActionListener() temp(); ); jl3.addActionListener(new ActionListener() /new temp2(); f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); / f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 设置布局方式为绝对定位 f.setLayout(null); f.setBounds(0, 0, 355, 265); / 设置窗体的标题图标 Image image = new I

17、mageIcon(image:登录.jpg f.setIconImage(image); / 窗体大小不能改变 f.setResizable(false); / 居中显示 f.setLocationRelativeTo(null); / 窗体可见 f.setVisible(true); public void temp() a2 = new JFrame( Container container1 = a2.getContentPane(); container1.setLayout(null); a2.setBounds(200, 300, 400, 300); a2.setDefaultC

18、loseOperation(WindowConstants.EXIT_ON_CLOSE); JLabel lab4 = new JLabel(); JLabel lab5 = new JLabel(); JLabel lab6 = new JLabel(); JButton xg_bt1 = new JButton(); JButton xg_bt2 = new JButton(); JLabel lab3 = new JLabel(账号 lab3.setBounds(0, 0, 200, 300); lab3.setBounds(20, 20, 80, 20); jtf1 = new JTe

19、xtField(50); jtf1.setBounds(120, 20, 260, 20); container1.add(lab3); container1.add(jtf1); lab4 = new JLabel(密码 lab4.setBounds(20, 50, 80, 20); jtf2 = new JPasswordField(50); jtf2.setBounds(120, 50, 260, 20); container1.add(lab4); container1.add(jtf2); lab5 = new JLabel(新密码 lab5.setBounds(20, 80, 80

20、, 20); jtf3 = new JPasswordField(50); jtf3.setBounds(120, 80, 260, 20); container1.add(lab5); container1.add(jtf3); lab6 = new JLabel(确认密码 lab6.setBounds(20, 110, 80, 20); jtf4 = new JPasswordField(50); jtf4.setBounds(120, 110, 260, 20); container1.add(lab6); container1.add(jtf4); xg_bt1 = new JButt

21、on(确定 xg_bt1.setBounds(80, 150, 100, 20); container1.add(xg_bt1); xg_bt2 = new JButton(取消 xg_bt2.setBounds(200, 150, 100, 20); container1.add(xg_bt2); a2.setVisible(true); a2.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); xg_bt1.addActionListener(new ActionListener() public void actionP

22、erformed(ActionEvent e) if(!jtf3.getText().equals(jtf4.getText() JOptionPane.showMessageDialog(null, 密码输入不一样, 提示, JOptionPane.ERROR_MESSAGE); jtf3.setText( jtf4.setText( else trydel+jtf1.getText()+jtf2.getText()+jtf3.getText(); p.flush(); catch(Exception ex) ); xg_bt2.addActionListener(new ActionLis

23、tener() public void actionPerformed(ActionEvent e) a2.setVisible(false); class DLThread extends Thread public void run() while(true) br=new BufferedReader(new InputStreamReader(s.getInputStream(); String S=br.readLine(); System.out.println(S); String str; str=S.split( if(str0.equals() if(str1.equals(正确 f.setVisible(false); new haoyoujiemian(); new C(str2,str3); else if(str1.equals(错误 username.setText( password.setText( JOptionPane.showMessageDialog(null, 账号或密码输入错误Y a2.setVisible(false);修改成功N jtf1.setText( jtf2.setText( jtf3.setText( jtf4.setText( JOptionPane.showMessageDialog(null,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1