《关于山寨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();publicstaticvoidaddQqFriendList(Stringqqid,QqFriendListqqFriendList)hm.put(qqid,qqFriendList);1publicstaticQqFriendLi