android 通過socket 和伺服器通訊,是一種比較常用的通訊方式,時間比較緊,說下大緻的思路,希望能幫到使用socket 進行通信的人
(1)開啟一個線程發送消息 socketoutputthread
消息是放在隊列裡的,當有消息後,進入隊列,線程喚醒,發送消息,并回報發送是否成功的回調
(2)開啟一個線程接受伺服器消息 socketinputthread
為了防止一直收資料,浪費電池的電,采用nio的方式讀socket的資料,這個是本文的關鍵
(3)開啟一個線程,做心跳,防止socket連接配接終斷 , socketheartthread
(4)建構 socketthreadmanager對以上三個thread進行管理
(5)建構 tcpclient 發送socket消息
在nio的方式實作tcp,特别是在接收伺服器的資料,不用寫個線程定時去讀了。

demo 截圖
主要代碼如下,詳細代碼在附件裡。
socketoutputthread 類
socketinputthread
sockethearthread 心跳類
線程管理類
tcpclient ,采用nio的方式建構
如何使用
代碼下載下傳 http://files.cnblogs.com/likwo/socketblockdemo.zip