- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
山寨QQ(韩顺平版)
这是一个简单的javaProject项目,没有涉及到数据库界面
对这个项目中完成的功能进行阐述:
1、qq用户登录:用户账号为1、2、3一直到50,密码都为123456,由于没有涉及到数据库,所以只是简单的在服务器进行验证。
2、实现1对1之间的聊天,实现1对多之间的聊天。
3、实现用户上线显示功能
具体的演示为:
1、启动服务器 QqServer下com.qq.view.MyServerFrame,在该类下面启动服务器
2、启动客户端 QqClient下com.qq.view.QqClientLogin,在该类下面输入账号和密码登入
ps:聊天时要把要把需要聊天的窗口都打开,才能看到。比如1和2聊天,必须打开1对2聊天的窗口和2对1聊天的窗口
QQ客户端:
QQ服务器
下面的是关于各个包的源代码,小伙伴们可以新建一个class,然后把这些拷贝上去就可以用了,当然前提是按照上面的工程创建好包
Image文件夹下用到的图片:
命名为:beibu.gif
命名为:xiangdao.png
命名为:quxiao.png
命名为:qq.png
命名为:mm.png
命名为:clear.png
命名为:dengru.png
QqClientConService类:
package com.qq.client.model;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import .Socket;
import com.qq.client.tools.ClientConServerThread;
import com.qq.client.tools.ManageClientConServerThread;
import mon.Message;
import mon.User;
/**
* 客户端连接服务器后台
* */
public class QqClientConService {
public Socket client;
//判断是否成功登录,成功返回true,否则返回false
public boolean sendLoginInfoToServer(Object o) {
boolean isLogin = false;
try {
//创建连接
client = new Socket(localhost, 9999);
ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
oos.writeObject(o);
ObjectInputStream ois = new ObjectInputStream(client.getInputStream());
Message message = (Message)ois.readObject();
//登录成功的判断
if(message.getMesType()==1) {
isLogin = true;
//登录成功,创建一个改客户端和服务器的线程
ClientConServerThread ccst = new ClientConServerThread(client);
//把改线程添加到管理线程的map中
ManageClientConServerThread.addClientConServerThread(((User)o).getName(), ccst);
//启动该线程
new Thread(ccst).start();
}
} catch (Exception e) {
e.printStackTrace();
}
return isLogin;
}
}
QqClientUser类:
package com.qq.client.model;
import mon.User;
/**
* 这是QQ客户端,发送用户名和密码
*
* */
public class QqClientUser {
//调用客户端连接服务器后台的方法,返回true为成功登录,false为登入失败
public boolean checkUser(User user) {
return new QqClientConService().sendLoginInfoToServer(user);
}
}
ClientConServerThread类:
package com.qq.cli
文档评论(0)