一、過程還原:
1.1.p2p模型
p2p(peer to peer)點對點通訊模型,終端與手機是對等網路,由於終端ip和埠固定,最初由手機建立信令報文傳輸鏈路(常鏈路),之後碼流報文傳輸鏈路(短鏈路)由終端根據手機端的相關的信令報文建立。
1.2.手機連線終端wifi
終端釋放乙個固定名稱熱點(如,wisdom_wifi),ip為固定192.168.10.16,服務埠固定為9999
手機端開啟wifi,手動連線(wisdom_wifi)
手機wifi連線成功,終端為其分配ip位址192.168.10.xx
1.3.信令鏈路建立
手機端主動 connect 192.168.10.16:9999,建立信令傳輸鏈路tcp0,用於手機和終端之間信令的接收和傳送
手機端週期性(如,10秒)傳送裝置狀態查詢指令到終端,終端應答之(相當於長連線,維持通訊鏈路)
二、第一步建立 乙個連線socket,連線終端裝置的ip和埠號
//例項化乙個socket物件
socket = new socket();
//與對應的ip、埠進行連線,先要把橋建好
socket.connect(new inetsocketaddress(ip, port), 3000);
log.i("socketthread","@@@connected");
if (socket.isconnected()) else
} catch (ioexception e)
定義的介面用於監聽socket連線成功與否
public inte***ce connectedstate
當連線成功後,會開啟輸入輸出流的執行緒
public class client
public void start()
// 得到讀訊息執行緒
public clientinputthreadtm getin()
// 得到寫訊息執行緒
public clientoutputthread getout()
}
裡面的構造方法裡註冊資料監聽的方法
在這裡啟動了輸入輸出執行緒
public clientinputthreadtm(socket socket) catch (ioexception e)
}
拿到socket的輸入流ois,同時包裝下datainputstream
同時執行緒的run方法,
int result = dis.read(b);
msg=「9102」;
messagelistener.message(msg);
msg = 「」;
寫出for迴圈表明一直監聽終端資料
當退出for迴圈監聽也隨之結束。
public clientoutputthread(socket socket) catch (ioexception e)
} // 這裡處理跟伺服器是一樣的
public void sendmsg(byte msg)
} @override
public void run() }}
dos.close();// 迴圈結束後,關閉輸出流和socket
if (socket != null)
socket.close();
} catch (interruptedexception e) catch (ioexception e) catch (errnoexception e)catch (exception e)
}
這裡使用了thread 的notify和wait的方式,所錯了是object的。居然是所有類的方法,查閱資料
發現:1、wait()、notify/notifyall() 方法是object的本地final方法,無法被重寫;
2、notify方法用於喚醒執行緒。我們看到輸出執行緒的傳送方法就只呼叫了notifyall方法。應該是喚醒這個執行緒。
3、notify方法只是喚醒執行緒。還沒有釋放鎖。當遇到wait方法才會釋放鎖。
總結:本片介紹了手機和終端通過socket流建立通訊的過程。
linux 終端裝置
終端解釋 終端是一種字元型裝置,它有多種型別,通常使用tty來簡稱各種型別的終端裝置。tty是teletype的縮寫。teletype是最早出現的一種終端裝置,很象電傳打字機 或者說就是 是由teletype公司生產的。在linux系統的裝置特殊檔案目錄 dev 下,終端特殊裝置檔案一般有以下幾種 ...
linux 終端裝置
早期計算機通常用電傳印表機充當終端裝置,終端裝置的作用就是接受使用者的輸入並傳遞給計算機,接受計算機的反饋返回給使用者。如下圖所示 後來電傳印表機被鍵盤和顯示器取代,linux為了支援這種外部終端裝置的連線,提供了終端裝置介面 tty 下面以海思hi3559開發板為例說明串列埠終端。在除錯開發板的時...
Linux 終端裝置驅動
1 控制台 1 控制台是乙個虛擬的終端,它必須對映到真正的終端上 2 控制台是個只輸出的裝置,功能很簡單,只能在核心中訪問 2 偽終端 一種特殊的終端裝置,由主 從兩個成對的裝置構成,當開啟主裝置時,對應的從裝置隨之開啟,形成連線狀態 輸入到主裝置的資料成為從裝置的輸出,輸入到從裝置的資料成為主裝置...