关于山寨QQ的java的源代码.docx
《关于山寨QQ的java的源代码.docx》由会员分享,可在线阅读,更多相关《关于山寨QQ的java的源代码.docx(25页珍藏版)》请在课桌文档上搜索。
1、关于山寨QQ的java的源代码Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,JaVa更具备了显著优势和广阔前景。文库里没有关于山寨QQ的java的源代码,只能看了视频整理自己写了,特免费分享。文档说明:根据java教学视频韩顺平.
2、循序渐进学java.从入门到精通(第8794讲)整理得源相关代码。代码调试无误,下载后调试有误的可评论留言联系。image中图片附录在源代码后面。工程文件夹:,一一.o.一.-V/赘ZTestQqClient,src田com.qq.client.modelI:*t)QqclientConServerjavaJ2)QqClientUserjava田com.qq.dienttoolsJJ)ClientConServerThreadjavatManageclientConServerThreadjavalmManageQqChatjavaT)ManageQqFriendIjstjava,com.qq
3、.dient.viewljj)QqChatJavaQqCIientLoginjavamQqFriendListjava,田mon:jj)Messagejava02)MessageTypejavat川Userjava3JRESystemLibraryJavaSE-1.6&image国clear.gif阖denglu.gif国mm.jpg3qqgif屈quxiao.gif三Thumbs.db国tou.gif溷xiangdao.gifr三rotnyDuxpiwiSioW2TestQqClient濯2TestQqServerSSrCJBmonMessagejava团MessageTypeJava辽IU
4、serjavacom.qq.server.db加com.qq.server.model功ManageCIientThreadjavaMyQqServerjavamSerConClientThreadjavacom.qq.server.tls曲com.qq.server.view团MyServerFramejavaBJRESystemLibraryJavaSE-1.6(源代码)/*这是客户端连接服务器的后台*/packagecom.qq.client.model;importcom.qq.client.tools.*;importjava.util.*;.*;importjava.io.*;mo
5、n.*;publicclassQqC1ientConServerpublicSockets;发送第一次请求publicbooleansendLoginInfoToServer(Objecto)(booleanb=false;try(/System.out.println(,kk);s=newSocket(127.0.0.,9988);ObjectOutputStreamoos=newObjectOutputStream(s.getOutputStream();oos.writebject(o);ObjectInputStreamois=newObjectInputStream(s.getInp
6、utStream();Messagems=(Message)ois.readObject();这里就是验证用户登录的地方if(ms.getMesType().equa!s(1)就创建个该qq号和服务器端保持通讯连接得线程ClientConServerThreadccst=newClientConServerThread(三);启动该通讯线程ccst.start();ManageClientConServerThread.addClientConServerThread(User)o).getUserId(),ccst);b=true;)else关闭Scokets.close();)catch(
7、Exceptione)e.printStackTrace();/TODO:handleexceptionfinally1returnb;)publicvoidSendInfoToServer(Objecto)(*trySockets=newSocket(127.0.0.1,9999);)catch(Exceptione)e.printStackTrace();/TODO:handleexception)finally)*/11packagecom.qq.client.model;mon.*;publicclassQqCIientUserpublicbooleancheckUser(Useru)
8、(returnnewQqClientConServerQ.sendLoginlnfoToServer(u);)*这是客户端和服务器端保持通讯的线程.*/packagecom.qq.client.tools;importjava.io.*;.*;importcom.qq.client.view.QqChat;importcom.qq.client.view.QqFriendList;mon.*;publicclassClientConServerThreadextendsThreadprivateSockets;构造函数publicClientConSen,erThread(Sockets)1t
9、his.s=s;)publicvoidrun()(while(true)(不停的读取从服务器端发来的消息try(ObjectInputStreamois=newObjectInputStream(s.getInputStream();Messagem=(Message)ois.readObject();System.out.println(读取到从服务发来的消息+m.getSender()+给+m.getGetter()+内容+m.getCon();if(m.getMesType().equals(MessageType.message_comm_mes)(把从服务器获得消息,显示到该显示的聊
10、天界面QqChatqqChat=ManageQqChat.getQqChat(m.getGetter()+m.getSender();显示qqChat.showMessage(m);(elseif(m.getMesType().equals(MessageType.message_ret_onLineFriend)(SyStem.out.println(“客户端接收到”+m.getCon();Stringcon=m.getCon();Stringfriends=con.split();Stringgetter=m.getGetter();System.out.println(,getter=,
11、+getter);/修改相应的好友列表.QqFriendListqqFriendList=ManageQqFriendList.getQqFriendList(getter);/if(qqFriendList)更新在线好友.if(qqFriendList!=null)(qqFriendList.upateFriend(m);1)catch(Exceptione)e.printStackTrace();/TODO:handleexception1)publicSocketgetS()returns;)publicvoidsetS(Sockets)this.s=s;)*这是一个管理客户端和服务器保
12、持通讯的线程类*/packagecom.qq.client.tools;importjava.util.*;publicclassManageciicntConServerThreadprivatestaticHashMaphm=newHashMap();把创建好的ClientConServerThread放入到IhmpublicstaticvoidaddClientConServerThread(Stringqqld,ClientConServerThreadccst)(hm.put(qqld,ccst);1可以通过qqld取得该线程publicstaticClientConServerTh
13、readgetClientConServerThread(Stringqqld)(return(ClientCOnSerVerThread)hm.get(qqld);)*这是一个管理用户聊天界面的类*/packagecom.qq.client.tools;importjava.util.*;importcom.qq.client.view.*;publicclassManageQqChatprivatestaticHashMaphm=nevHashMap();加入publicstaticvoidaddQqChat(StringIoginIdAnFriendId5QqChatqqChat)(hm
14、.put(loginIdAnFriendId,qqChat);)取出publicstaticQqChatgetQqChat(StringIoginIdAnFriendId)(return(QqChat)hm.get(loginIdAnFriendId);)*管理好友、黑名单,界面类*/packagecom.qq.clicnt.tools;importjava.util.*;importjava.io.*;importcom.qq.client.view.*;publicclassManageQqFriendListprivatestaticHashMaphm=newHashMap();publ
15、icstaticvoidaddQqFriendList(Stringqqid,QqFriendListqqFriendList)hm.put(qqid,qqFriendList);1publicstaticQqFriendListgetQqFriendList(Stringqqld)(return(QqFriendList)hm.get(qqId);11* 这是与好友聊天的界面* 因为客户端,要处于读取的状态,因此我们把它做成一个线程* /packagecom.qq.client.view;importcom.qq.client.tools.*;importcom.qq.client.mode
16、l.*;mon.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassQqChatextendsJFrameimplementsActionListenerfJTextAreajta;JTextFieldjtf;JButtonjb;JPaneljp;Stringownerld;Stringfriendld;publicstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstub/QqChatqqChat=newQqChat
17、(,);publicQqChat(Stringownerld,Stringfriend)(this.ownerld=ownerld;this.friendld=friend;jta=newJTextArea();jtf=newJTextField(15);jb=newJBUttOn(发送);jb.addActionListener(Ihis);jp=newJPanel();jp.add(jtf);jp.add(jb);this.add(jta,Center);this.add(jp,South);this.setTitle(ownerId+正在和+friend+聊天);this.setlcon
18、lmage(newImagelcon(imageqq.gif,).getlmage();this.setSize(300,200);this.setVisible(true);)写一个方法,让它显示消息publicvoidshowMessage(Messagem)(Stringinfo=m.getSender()+对+m.getGetter()+说:+m.getCon()+rr;this.jta.append(info);1publicvoidactionPerformed(ActionEventarg)/TODOAuto-generatcdmethodstubif(arg0.getSourc
19、e()=jb)(如果用户点击了,发送按钮Messagem=newMessage();m.setMesType(MessageType.message_comm_mes);/川最后一步m.setSender(this.ownerId);m.setGetter(this.friendld);m.setCon(jtf.getText();m.setSendTime(newjava.util.Date().toString();发送给服务器.try(ObjectOutputStreamoos=newObjectOutputStream(ManageCIicntConServerThread.getCI
20、ientConServerThread(ownerId).getS().getOutputStream();oos.writebject(m);catch(Exceptione)e.printStackTrace();/TODO:handleexception1)/publicvoidrun()/TODOAuto-generatedmethodstub/while(true)(try(/读取如果读不到就等待./ObjectInputStreamObjectInputStream(QqClientConServer.s.getInputStream();/Messagem=(Message)oi
21、s.readObject();/显示ois=new/Stringinfo=m.getSender()+对+m.getGetter()+/this.jta.append(info);/catch(Exceptione)/e.printStackTrace();/TODO:handleexception/1/H说:+m.getCon()+rn;*功能:qq客户端登录界面*/packagecom.qq.client.view;mon.*;importcom.qq.client.tools.*;importjava.io.*;importjavax.swing.*;importcom.qq.clien
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 山寨 QQ java 源代码
链接地址:https://www.desk33.com/p-481588.html