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

    山寨版QQ源代码.docx

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

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

    山寨版QQ源代码.docx

    1、山寨版QQ源代码关于山寨QQ的java的源代码Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。文库里没有关于山寨QQ的java的源代码,只能看了视频整理自己写了,特免费分享。文档说明:根据

    2、java教学视频韩顺平.循序渐进学.java.从入门到精通(第8794讲)整理得源相关代码。代码调试无误,下载后调试有误的可评论留言联系。image中图片附录在源代码后面。工程文件夹:(源代码)/* * 这是客户端连接服务器的后台 */package com.qq.client.model;import com.qq.client.tools.*;import java.util.*;import .*;import java.io.*;import mon.*;public class QqClientConServer public Socket s; /发送第一次请求 public bo

    3、olean sendLoginInfoToServer(Object o) boolean b=false; try / System.out.println(kk); s=new Socket(127.0.0.1,9988); ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream(); oos.writeObject(o); ObjectInputStream ois=new ObjectInputStream(s.getInputStream(); Message ms=(Message)ois.readObject

    4、(); /这里就是验证用户登录的地方 if(ms.getMesType().equals(1) /就创建一个该qq号和服务器端保持通讯连接得线程 ClientConServerThread ccst=new ClientConServerThread(s); /启动该通讯线程 ccst.start(); ManageClientConServerThread.addClientConServerThread (User)o).getUserId(), ccst); b=true; else /关闭Scoket s.close(); catch (Exception e) e.printStac

    5、kTrace(); / TODO: handle exception finally return b; public void SendInfoToServer(Object o) /*try Socket s=new Socket(127.0.0.1,9999); catch (Exception e) e.printStackTrace(); / TODO: handle exception finally */ package com.qq.client.model;import mon.*;public class QqClientUser public boolean checkU

    6、ser(User u) return new QqClientConServer().sendLoginInfoToServer(u); /* * 这是客户端和服务器端保持通讯的线程. */package com.qq.client.tools;import java.io.*;import .*;import com.qq.client.view.QqChat;import com.qq.client.view.QqFriendList;import mon.*;public class ClientConServerThread extends Thread private Socket

    7、s; /构造函数 public ClientConServerThread(Socket s) this.s=s; public void run() while(true) /不停的读取从服务器端发来的消息 try ObjectInputStream ois=new ObjectInputStream(s.getInputStream(); Message m=(Message)ois.readObject(); System.out.println(读取到从服务发来的消息+ m.getSender() + 给 +m.getGetter()+ 内容+ m.getCon(); if(m.get

    8、MesType().equals(MessageType.message_comm_mes) /把从服务器获得消息,显示到该显示的聊天界面 QqChat qqChat=ManageQqChat.getQqChat(m.getGetter()+ +m.getSender(); /显示 qqChat.showMessage(m); else if(m.getMesType().equals(MessageType.message_ret_onLineFriend) System.out.println(客户端接收到+m.getCon(); String con=m.getCon(); String

    9、 friends=con.split( ); String getter=m.getGetter(); System.out.println(getter=+getter); /修改相应的好友列表. QqFriendList qqFriendList=ManageQqFriendList.getQqFriendList(getter); / / if(qqFriendList) /更新在线好友. if(qqFriendList!=null) qqFriendList.upateFriend(m); catch (Exception e) e.printStackTrace(); / TODO:

    10、 handle exception public Socket getS() return s; public void setS(Socket s) this.s = s; /* * 这是一个管理客户端和服务器保持通讯的线程类 */package com.qq.client.tools;import java.util.*;public class ManageClientConServerThread private static HashMap hm=new HashMap(); /把创建好的ClientConServerThread放入到hm public static void ad

    11、dClientConServerThread(String qqId,ClientConServerThread ccst) hm.put(qqId, ccst); /可以通过qqId取得该线程 public static ClientConServerThread getClientConServerThread(String qqId) return (ClientConServerThread)hm.get(qqId); /* * 这是一个管理用户聊天界面的类 */package com.qq.client.tools;import java.util.*;import com.qq.c

    12、lient.view.*;public class ManageQqChat private static HashMap hm=new HashMap(); /加入 public static void addQqChat(String loginIdAnFriendId,QqChat qqChat) hm.put(loginIdAnFriendId, qqChat); /取出 public static QqChat getQqChat(String loginIdAnFriendId ) return (QqChat)hm.get(loginIdAnFriendId); /* * 管理好

    13、友、黑名单.界面类 */package com.qq.client.tools;import java.util.*;import java.io.*;import com.qq.client.view.*;public class ManageQqFriendList private static HashMap hm=new HashMap(); public static void addQqFriendList(String qqid,QqFriendList qqFriendList) hm.put(qqid, qqFriendList); public static QqFrien

    14、dList getQqFriendList(String qqId) return (QqFriendList)hm.get(qqId); /* * 这是与好友聊天的界面 * 因为客户端,要处于读取的状态,因此我们把它做成一个线程 */package com.qq.client.view;import com.qq.client.tools.*;import com.qq.client.model.*;import mon.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;publ

    15、ic class QqChat extends JFrame implements ActionListener JTextArea jta; JTextField jtf; JButton jb; JPanel jp; String ownerId; String friendId; public static void main(String args) / TODO Auto-generated method stub /QqChat qqChat=new QqChat(1); public QqChat(String ownerId,String friend) this.ownerI

    16、d=ownerId; this.friendId=friend; jta=new JTextArea(); jtf=new JTextField(15); jb=new JButton(发送); jb.addActionListener(this); jp=new JPanel(); jp.add(jtf); jp.add(jb); this.add(jta,Center); this.add(jp,South); this.setTitle(ownerId+ 正在和 +friend+ 聊天); this.setIconImage(new ImageIcon(image/qq.gif).get

    17、Image(); this.setSize(300, 200); this.setVisible(true); /写一个方法,让它显示消息 public void showMessage(Message m) String info=m.getSender()+ 对 +m.getGetter()+ 说:+m.getCon()+rn; this.jta.append(info); public void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub if(arg0.getSource()=jb) /如果用户

    18、点击了,发送按钮 Message m=new Message(); m.setMesType(MessageType.message_comm_mes); /!最后一步 m.setSender(this.ownerId); m.setGetter(this.friendId); m.setCon(jtf.getText(); m.setSendTime(new java.util.Date().toString(); /发送给服务器. try ObjectOutputStream oos=new ObjectOutputStream (ManageClientConServerThread.g

    19、etClientConServerThread(ownerId).getS().getOutputStream(); oos.writeObject(m); catch (Exception e) e.printStackTrace(); / TODO: handle exception / public void run() / / TODO Auto-generated method stub/ while(true)/ / try / /读取如果读不到就等待./ ObjectInputStream ois=new ObjectInputStream(QqClientConServer.s

    20、.getInputStream();/ / Message m=(Message)ois.readObject();/ / /显示/ String info=m.getSender()+ 对 +m.getGetter()+ 说:+m.getCon()+rn;/ this.jta.append(info);/ / / / catch (Exception e) / e.printStackTrace();/ / TODO: handle exception/ / / / / / / /* * 功能:qq客户端登录界面 */package com.qq.client.view;import mon

    21、.*;import com.qq.client.tools.*;import java.io.*;import javax.swing.*;import com.qq.client.model.QqClientUser;import mon.User;import java.awt.*;import java.awt.event.*;public class QqClientLogin extends JFrame implements ActionListener /定义北部需要的组件 JLabel jbl1; /定义中部需要的组件 /.中部有三个JPanel,有一个叫选项卡窗口管理 JTa

    22、bbedPane jtp; JPanel jp2,jp3,jp4; JLabel jp2_jbl1,jp2_jbl2,jp2_jbl3,jp2_jbl4; JButton jp2_jb1; JTextField jp2_jtf; JPasswordField jp2_jpf; JCheckBox jp2_jcb1,jp2_jcb2; /定义南部需要的组件 JPanel jp1; JButton jp1_jb1,jp1_jb2,jp1_jb3; public static void main(String args) / TODO Auto-generated method stub QqCli

    23、entLogin qqClientLogin=new QqClientLogin(); public QqClientLogin() /处理北部 jbl1=new JLabel(new ImageIcon(image/tou.gif); /处理中部 jp2=new JPanel(new GridLayout(3,3); jp2_jbl1=new JLabel(QQ号码,JLabel.CENTER); jp2_jbl2=new JLabel(QQ密码,JLabel.CENTER); jp2_jbl3=new JLabel(忘记密码,JLabel.CENTER); jp2_jbl3.setFore

    24、ground(Color.blue); jp2_jbl4=new JLabel(申请密码保护,JLabel.CENTER); jp2_jb1=new JButton(new ImageIcon(image/clear.gif); jp2_jtf=new JTextField(); jp2_jpf=new JPasswordField(); jp2_jcb1=new JCheckBox(隐身登录); jp2_jcb2=new JCheckBox(记住密码); /把控件按照顺序加入到jp2 jp2.add(jp2_jbl1); jp2.add(jp2_jtf); jp2.add(jp2_jb1);

    25、 jp2.add(jp2_jbl2); jp2.add(jp2_jpf); jp2.add(jp2_jbl3); jp2.add(jp2_jcb1); jp2.add(jp2_jcb2); jp2.add(jp2_jbl4); /创建选项卡窗口 jtp=new JTabbedPane(); jtp.add(QQ号码,jp2); jp3= new JPanel(); jtp.add(手机号码,jp3); jp4=new JPanel(); jtp.add(电子邮件,jp4); /处理南部 jp1=new JPanel(); jp1_jb1=new JButton(new ImageIcon(im

    26、age/denglu.gif); /响应用户点击登录 jp1_jb1.addActionListener(this); jp1_jb2=new JButton(new ImageIcon(image/quxiao.gif); jp1_jb3=new JButton(new ImageIcon(image/xiangdao.gif); /把三个按钮放入到jp1 jp1.add(jp1_jb1); jp1.add(jp1_jb2); jp1.add(jp1_jb3); this.add(jbl1,North); this.add(jtp,Center); /.把jp1放在南部 this.add(j

    27、p1,South); this.setSize(350, 240); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); public void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub /如果用户点击登录 if(arg0.getSource()=jp1_jb1) QqClientUser qqClientUser=new QqClientUser(); User u=new User(); u.setUserId(jp2_jtf.getText()


    注意事项

    本文(山寨版QQ源代码.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开