日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Android 開(kāi)發(fā)即時(shí)聊天工具 YQ :(四) 獲取好友列表

admin
2013年2月25日 14:23 本文熱度 4939

Android 開(kāi)發(fā)即時(shí)聊天工具 YQ :(三) 實(shí)現(xiàn)登陸功能中已經(jīng)實(shí)現(xiàn)了登陸功能,離能聊天又近了一步了 :)


在實(shí)現(xiàn)聊天之前還有一個(gè)重要的東西,?沒(méi)錯(cuò),就是好友列表,沒(méi)的好友你和誰(shuí)聊呀,是吧,


嘿嘿,一切從簡(jiǎn),早點(diǎn)實(shí)現(xiàn)基本的聊天目標(biāo)的說(shuō),所以代碼很懶(or 爛?),為什么呢?看完就知道了,


在服務(wù)器端當(dāng)?shù)顷懗晒螅麻_(kāi)一個(gè)線程,用來(lái)服務(wù)器和該賬號(hào)通信,這樣服務(wù)器端就可以處理別的登陸請(qǐng)求了,





[java]


  1. if(u.getOperation().equals("login")){ //登錄   

  2.                 int account=u.getAccount();  

  3.                 boolean b=new UserDao().login(account, u.getPassword());//連接數(shù)據(jù)庫(kù)驗(yàn)證用戶   

  4.                 if(b){  

  5.                     System.out.println(MyData.getDate()+"'"+account+"' 上線了!");  

  6.                     m.setType(YQMessageType.SUCCESS);//返回一個(gè)成功登陸的信息包   

  7.                     oos.writeObject(m);  

  8.                     ServerConClientThread cct=new ServerConClientThread(s);//單開(kāi)一個(gè)線程,讓該線程與該客戶端保持連接   

  9.                     ManageServerConClient.addClientThread(u.getAccount(),cct);  

  10.                     cct.start();//啟動(dòng)與該客戶端通信的線程   

  11.                 }else{  

  12.                     m.setType(YQMessageType.FAIL);  

  13.                     oos.writeObject(m);  

  14.                 }  

  15.             }else if(u.getOperation().equals("register")){  

  16.                 //注冊(cè)   

  17.             }  
服務(wù)器和某個(gè)客戶端通信的線程:




[java]


  1. public class ServerConClientThread extends Thread {  

  2.     Socket s;  

  3.     public ServerConClientThread(Socket s){  

  4.         this.s=s;  

  5.     }  

  6.   

  7.     public void run() {  

  8.         while(true){  

  9.             ObjectInputStream ois = null;  

  10.             YQMessage m = null;  

  11.             try {  

  12.                 ois=new ObjectInputStream(s.getInputStream());  

  13.                 m=(YQMessage) ois.readObject();  

  14.                 //對(duì)從客戶端取得的消息進(jìn)行類(lèi)型判斷,做相應(yīng)的處理   

  15.                 if(m.getType().equals(YQMessageType.COM_MES)){//如果是普通消息包   

  16.                     //取得接收人的通信線程   

  17.                     ServerConClientThread scc=ManageServerConClient.getClientThread(m.getReceiver());  

  18.                     ObjectOutputStream oos=new ObjectOutputStream(scc.s.getOutputStream());  

  19.                     //向接收人發(fā)送消息   

  20.                     oos.writeObject(m);  

  21.                 }else if(m.getType().equals(YQMessageType.GET_ONLINE_FRIENDS)){//如果是請(qǐng)求好友列表   

  22.                     //操作數(shù)據(jù)庫(kù),這里返回的是所有的用戶列表,先留著坑,以后填,增加好友   

  23.                     //暫時(shí)將結(jié)果揉成string類(lèi)型,以后可以改為json   

  24.                     String res=new UserDao().getUser();  

  25.                     //發(fā)送好友列表到客戶端   

  26.                     ServerConClientThread scc=ManageServerConClient.getClientThread(m.getSender());  

  27.                     ObjectOutputStream oos=new ObjectOutputStream(scc.s.getOutputStream());  

  28.                     YQMessage ms=new YQMessage();  

  29.                     ms.setType(YQMessageType.RET_ONLINE_FRIENDS);  

  30.                     ms.setContent(res);  

  31.                     oos.writeObject(ms);  

  32.                 }  

  33.             } catch (Exception e) {  

  34.                 e.printStackTrace();  

  35.                 try {  

  36.                     s.close();  

  37.                     ois.close();  

  38.                 } catch (IOException e1) {  

  39.                       

  40.                 }  

  41.             }  

  42.         }  

  43.     }  

  44. }  
可以看到已經(jīng)有了處理請(qǐng)求好友列表的代碼了,現(xiàn)在知道為什么說(shuō)代碼寫(xiě)的爛了吧,哈哈,


在客戶端中,與上面類(lèi)似:





[java]


  1. if(ms.getType().equals(YQMessageType.SUCCESS)){  

  2.                 //創(chuàng)建一個(gè)該賬號(hào)和服務(wù)器保持連接的線程   

  3.                 ClientConServerThread ccst=new ClientConServerThread(context,s);  

  4.                 //啟動(dòng)該通信線程   

  5.                 ccst.start();  

  6.                 //加入到管理類(lèi)中   

  7.                 ManageClientConServer.addClientConServerThread(((User)obj).getAccount(), ccst);  

  8.                 b=true;  

  9.             }else if(ms.getType().equals(YQMessageType.FAIL)){  

  10.                 b=false;  

  11.             }  

將客戶端連接服務(wù)器的線程為什么要加到ManageClientServer這個(gè)類(lèi)中,就是方便隨時(shí)可以得到ObjectOutputStream對(duì)象,以便想服務(wù)器發(fā)送數(shù)據(jù),當(dāng)然也可以寫(xiě)一個(gè)專(zhuān)門(mén)發(fā)送數(shù)據(jù)的線程。



在客戶端登陸成功后,向服務(wù)器發(fā)送一個(gè)請(qǐng)求好友列表的包:





[java]


  1. //發(fā)送一個(gè)要求返回在線好友的請(qǐng)求的Message   

  2.                 ObjectOutputStream oos = new ObjectOutputStream (  

  3.                         ManageClientConServer.getClientConServerThread(user.getAccount()).getS().getOutputStream());  

  4.                 YQMessage m=new YQMessage();  

  5.                 m.setType(YQMessageType.GET_ONLINE_FRIENDS);  

  6.                 m.setSender(user.getAccount());  

  7.                 oos.writeObject(m);  




在得到好友列表后,顯示到好友列表中就OK,listView 和adapter種種,就不詳細(xì)說(shuō)了,


完成后效果如圖:






話說(shuō)安卓模擬器永遠(yuǎn)是3G信號(hào),永遠(yuǎn)在充電,,,,


該文章在 2013/2/25 14:23:21 編輯過(guò)
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 中国领先的综合视频网站 | 婷婷伊人网 | 777米奇| 亚洲精品一区二区三区人妖 | 欧美又大粗又爽又黄大片视 | 影音先锋亚洲综合小说在线 | 亚洲欧洲日韩国产aa色大片 | 国产午夜福利在线观看污 | 欧美日韩一区二区在线 | 国产日韩欧美激情视频不卡 | 亚洲精品亚洲欧美综合区 | 亚洲国产精品自产在线播放 | 伊人成年网站综合网 | 乱码一线二线三线新区破解欧 | 每日更新国产精品视频 | 天天爱天天做天天做天天吃中 | 精品一区二区五 | 99re热视频这里只有综合亚洲 | 日产亚洲一卡2卡3卡4卡网站 | 自偷自拍三级全三级视频 | 国产又污又爽又黄又刺激网站 | 欧洲亚洲视频 | 国产精品亚洲综合一区在线观看 | 国产精品视频高清在线播放 | 国产视频在线免费观看 | 99视频精品全部品全正 | 亚洲小说欧美中文在线 | 国产综合一区二区三区 | 悠久影视网网 | 欧美日韩国产中文字幕 | 国产一级精品高清 | 在线免费观看区一区二 | 福利片午夜免费观着 | 国产一区二区三区不卡在线观看 | 中日欧美精品在线播放 | 亚洲国产高清 | 国产一区二区三区在线播放无 | 欧美v亚洲v综合 | 日本三级在线播放线观看视频 | 成年网站免费入口 | 韩国专区福利一区二区 |