ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:179.01KB ,
资源ID:2394116      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(java课程设计--聊天软件(带源码).doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

java课程设计--聊天软件(带源码).doc

1、1. 实验设计目的:(1)掌握类的定义和使用;(2)掌握对象的定义;(3)掌握线程的使用。2. 实验设计内容:设计一个类似qq群聊的聊天软件3. 技术要点:客户端和服务器端的开发,数据库的链接与使用4. 实验条件:(1)主要设备: 586或更高机型,256MB或更高的内存,40G或更大的硬盘。(2)主要软件:操作系统可为Windows9X、WinMe、Win2000或更高版本等;开发环境为jdk或者jcreator。(3)参考书目:尹继平,张帆.java范例大全.机械工业出版社施霞萍.java程序设计教程.机械工业出版社 5. 实验方法与步骤:这个软件从0.1到1.3一共13个版本。0.1到0

2、.4版本为客户端界面设计,第0.5到1.2版本为服务器端设计以及客户端与服务器端通信连接的设计实现。1.3版为完善之前版本的缺陷并添加登陆界面。最终版本1.3版中一共三个类(如图一所示)源代码如下:/客户端import java.awt.*;import java.awt.event.*;import java.io.IOException;import .*;import java.io.*;public class ChatClient extends Frame Socket s = null;DataOutputStream dos = null;DataInputStream dis

3、 = null;private boolean bConnected = false;private static final long serialVersionUID = 1L;TextField tfTxt = new TextField();TextArea taContent = new TextArea();public static void main(String args) / TODO Auto-generated method stubnew Login();public void launchFrame() setLocation(400, 300);this.setS

4、ize(300, 300);add(tfTxt, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) disconnect();System.exit(0););tfTxt.addActionListener(new TFListener();setVisible(true);connect();new Thread(new RecvThea

5、d().start();public void connect() try s = new Socket(127.0.0.1, 8888);dos = new DataOutputStream(s.getOutputStream();dis = new DataInputStream(s.getInputStream();System.out.print(lian jie shang le );bConnected = true; catch (UnknownHostException e) / TODO Auto-generated catch blocke.printStackTrace(

6、); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();public void disconnect() try dos.close();s.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();private class TFListener implements ActionListener public void actionPerformed(ActionEvent e) S

7、tring ip = null;String address= null;InetAddress addr;try addr = InetAddress.getLocalHost(); ip=addr.getHostAddress().toString();/获得本机IP address=addr.getHostName().toString();/获得本机名称 catch (UnknownHostException e2) / TODO Auto-generated catch blocke2.printStackTrace();String str =address+ip+n+ tfTxt

8、.getText().trim();/taContent.setText(str);tfTxt.setText();try / DataOutputStream dos=new/ DataOutputStream(s.getOutputStream();dos.writeUTF(str);dos.flush();/ dos.close(); catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTrace();private class RecvThead implements Runnable Overrid

9、epublic void run() try while (bConnected) String str;str = dis.readUTF();taContent.setText(taContent.getText()+str+n);System.out.print(str); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();/服务器端import java.io.DataInputStream;import java.io.EOFException;import java.io.IOExc

10、eption;import java.io.*;import .*;import java.util.*;public class ChatServer boolean started = false;ServerSocket ss = null;Listclients=new ArrayList();public static void main(String args) / Socket s=null;/ DataInputStream dis =null;new ChatServer().start();public void start() try ss = new ServerSoc

11、ket(8888);started = true; catch (BindException e) System.out.print(端口使用中!n);System.out.print(请关闭相关程序重新运行程序!n);System.exit(0); catch (IOException e) e.printStackTrace();try while (started) / oolean bConnected=false;/ s=ss.accept();Socket s = ss.accept();Client c = new Client(s);System.out.print(已连接!n

12、);new Thread(c).start();clients.add(c);/ dis.close(); catch (IOException e) e.printStackTrace(); finally try ss.close(); catch (IOException e1) e1.printStackTrace();class Client implements Runnable private Socket s;private DataInputStream dis = null;private DataOutputStream dos=null;private boolean

13、bConnected = false;public Client(Socket s) this.s = s;try dis = new DataInputStream(s.getInputStream();dos =new DataOutputStream(s.getOutputStream();bConnected = true; catch (IOException e) e.printStackTrace();public void send(String str)try dos.writeUTF(str); catch (IOException e) / TODO Auto-gener

14、ated catch blocke.printStackTrace();public void run() try while (bConnected) String str = dis.readUTF();System.out.print(str + n);for (int i=0;iclients.size();i+)Client c=clients.get(i);c.send(str); catch (EOFException e) System.out.print(客户端断开连接!n); catch (IOException e) e.printStackTrace(); finall

15、y try if (dis != null)dis.close();if (dos != null)dos.close();/ if(s!=null)s.close(); catch (IOException e1) e1.printStackTrace();/客户端登陆* To change this template, choose Tools | Templatesimport javax.swing.*;/* * * author Administrator */public class Login extends JFrame implements ActionListener JP

16、anel pnlLogin; JLabel lblUserName,lblPassword,P; JButton btnLogin,btnExit; JTextField txtUserName,txtlbldl; JPasswordField pwdPassword; Dimension dsSize; Toolkit toolkit=Toolkit.getDefaultToolkit(); public Login() super(登陆); pnlLogin=new JPanel(); this.getContentPane().add(pnlLogin); pnlLogin.setLay

17、out(null); lblUserName=new JLabel(用户名(U):); lblPassword=new JLabel(密码:); txtUserName=new JTextField(20); pwdPassword=new JPasswordField(30); btnLogin=new JButton(登录(L); btnLogin.setMnemonic(L); btnExit=new JButton(退出(X); btnExit.setToolTipText(退出系统); btnExit.setMnemonic(X); btnLogin.addActionListene

18、r(this); btnExit.addActionListener(this); / P.setBounds(0,0,315,120); / pnlLogin.add(P); pnlLogin.setBackground(Color.WHITE); lblUserName.setBounds(10,125,90,25); txtUserName.setBounds(120,125,180,25); lblPassword.setBounds(10,155,90,25); pwdPassword.setBounds(120,155,180,25); btnLogin.setBounds(20,

19、185,80,25); btnExit.setBounds(220,185,80,25); lblUserName.setForeground(Color.BLACK); lblUserName.setBackground(Color.WHITE); lblPassword.setForeground(Color.BLACK); lblPassword.setBackground(Color.WHITE); pnlLogin.add(lblUserName); pnlLogin.add(txtUserName); pnlLogin.add(lblPassword); pnlLogin.add(

20、pwdPassword); pnlLogin.add(btnLogin); pnlLogin.add(btnExit); setResizable(false); setSize(315,245); setVisible(true); dsSize=toolkit.getScreenSize(); setLocation(dsSize.width/2-this.getWidth()/2,dsSize.height/2-this.getHeight()/2); Override public void actionPerformed(ActionEvent ae) if(ae.getSource

21、()=btnLogin) String jusername =txtUserName.getText().trim(); char s = pwdPassword.getPassword(); String jpassword = new String(s); if (jusername.equals() | jpassword.equals() JOptionPane.showMessageDialog(this, 对不起,请输入用户名或密码., 错误!,JOptionPane.ERROR_MESSAGE); else try Class.forName(com.microsoft.sqls

22、erver.jdbc.SQLServerDriver); /System.out.println(加载驱动程序成功); catch(Exception e) System.out.println(无法加载驱动程序); tryString url = jdbc:sqlserver:/localhost:1433;DatabaseName=login;/ pubs为你的数据库的String user = ;/用自己的数据库登录账户和密码String password = ;/ Connection conn = DriverManager.getConnection(url, user, pass

23、word); Statement stmt = conn.createStatement(); / if(jusername.length()30) / for(int i=0;i27;i+) / jusername=jusername+ ; / ResultSet rs = stmt.executeQuery( select username,password from login_user where username=+jusername+); if (rs.next() String a=rs.getString(password).trim(); if (a.equals(jpass

24、word) JOptionPane.showMessageDialog(null, 登陆成功); new ChatClient().launchFrame(); super.setVisible(false); else JOptionPane.showMessageDialog(this, 对不起,密码错误,请重新输入,登陆失败, JOptionPane.ERROR_MESSAGE); else JOptionPane.showMessageDialog(this, 用户名不存在,请重新输入, 错误!,JOptionPane.ERROR_MESSAGE); rs.close(); stmt.

25、close(); catch(SQLException e) System.out.println(SQL异常); if(ae.getSource()=btnExit) System.exit(0); public static void main(String args) Login d5_3 = new Login(); 程序运行截图登陆界面登陆失败登陆成功多个客户端登陆聊天,一个发起聊天在线的全部能收到6. 实验总结:这个实验的主要技术是包中的是socket使用。要想开发一个聊天系统一定要了解信息在网络中首发传递的过程,学会最基本的socket的使用。技术难点之一是服务器的设计,要解决怎

26、么是服务器能连接多个客户端,我这使用的是多线程技术,难点二是数据库的使用,怎么连接,怎么读取添加数据。程序的不足:(1)数据库设计简单,数据库只使用了一个用户表,在登陆聊天的时候只是读取登陆者身份,进行验证没有注册。(2)没有重复登陆的检验(3)这个如今仅能显示登陆者的ip不能反映用户信息、(4)信息的传递没有进行加密,信息不安全程序不足的解决方法:(1)对不足(1)的解决方法是添加一个注册界面,用于对用户表用户的添加。(2)对重复登陆的检验的解决办法是在数据库中添加一个登陆状态的校验值,默认为0,登陆后改为1;当此值为1时禁止在登陆(3)对于不能显示登陆用户的解决方法是从数据库中读取用户名(4)信息未加密的解决办法是添加一个加密解密的类对数据进行加解密这个实验是我懂得了设计实验的基本方法,从一个简单版本,一步步的添加完善功能。正所谓罗马不是一天建立起来的,进行软件开发也是一样,要从简单的模型开始,一点点开发,发现问题解决为题将软件不断完善。 14

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服