源碼簡介

運行步驟
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();// 發送完消息后,線程進入等待狀態
}
}
}
Android應用源碼高仿QQ客戶端加服務端加數據庫全套 Android應用源碼高仿QQ客戶端加服務端加數據庫全套 Android應用源碼高仿QQ客戶端加服務端加數據庫全套 Android應用源碼高仿QQ客戶端加服務端加數據庫全套

52條源碼討論
發表評論

您必須登錄才能評論.

31# songs123 2018-12-17 下午4:58

能連接上服務端,但是“注冊”時顯示“服務器未開起”,求解啊!!

?2013-2019 JavaApk.com· 魯ICP備13032311號-1· Powered by WordPress· Theme by JavaApkTM · 網站地圖.18 queries in 0.080 seconds


竟彩足球比分直播