好库网 好库网首页 | 我的好库
安卓专栏

高仿QQ客户端加服务端加数据库全套源码

发布者:android
发布日期:2014/12/15 23:06:58   更新日期:2014/12/15 23:06:58
文件大小:1M
下载次数:101   浏览次数:814
评分:4.80

源码目录结构图

介绍

高仿QQ客户端加服务端加数据库全套源码运行步骤:
QQServer端
1,使用mysql.sql文件创建数据库,修改DB.properties中密码为你设置的数据库的密码
mysql数据库默认编码应该设置为gbk
2,先启动Server
QQClient端
1,改ip
修改com.way.chat.common.util.Constants.SERVER_IP为你自己电脑的ip
查看ip,开始---运行---cmd(命令提示符)---ipconfig
2,运行客户端
真机测试时如果真机不能连接自己电脑上的服务器,先要关闭防火墙;
真机不能连接自己电脑的服务器的时候,可以使用模拟器测试
=============================================================================================
原理:socket通信+多线程
1,服务器QQServer开启了一个ServerSocket,等待客户端连接;
2,用户操作安卓客户端的时候,客户端QQClient创建一个Socket后去连接服务器,创建一个输出线程ClientOutputThread,将客户端的消息发送给服务器;
3,服务器使用InputThread接收用户发送的消息,根据消息的不同调用不同的代码进行消息处理(如登陆消息就验证用户名和密码,调用dao查询数据库,返回验证结果),处理完毕后,服务器将处理结果通过OutputThread发送给客户端;
4,客户端使用ClientInputThread接收服务器返回的结果,根据结果不同展现不同的界面(...登陆成功进入QQ主界面,验证失败给出用户名密码错误的界面)
=============================================================================================
客户端输出线程ClientOutputThread发消息后,会进入等待状态,直到下次用户操作后,再唤醒输出线程;
等待代码:
@Override
public void run() {
try {
while (isStart) {
if (msg != null) {
System.out.println("msg:"+msg);
oos.writeObject(msg);
oos.flush();
if (msg.getType() == TranObjectType.LOGOUT) {
// 如果是发送下线的消息,就直接跳出循环
break;
}
synchronized (this) {
wait();// 发送完消息后,线程进入等待状态
}
}



评论

账号 密码 还没帐号呢,现在注册一个?



免责声明:好库网所展示的信息由发布者自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。