藍傑通訊總結
在如今這個資訊主導的世界中,人們的生活時時刻刻的在和通訊相互交融著。也許,生活的忙碌讓人們忽略了通訊的存在。但不能否認的是,人們在打**,上qq,msn,人人的時候,都無形的運用了通訊技術。那麼什麼是通訊技術呢?
我們就以具體的專案為例,具體的分析通訊到底是什麼。首先說明一下專案的具體要求:我們是要運用通訊技術,實現群聊功能,除此之外我們還要實現客戶端之間畫圖的共享功能。好那我們就開始談談怎樣實現通訊吧!
通過這階段的學習,我們現在實現的通訊首先是運用socket技術建立伺服器與客戶端來實現的。伺服器就是等待別人來連線的機器。客戶機就是主動去連線別人的機器了。
我們來先實現伺服器的功能
1. 建立乙個伺服器socketserever物件,port為伺服器為此通訊程式開闢的埠號:
// 建立繫結到特定埠的伺服器套接字物件ss
serversocket ss = new serversocket(port);
2. 前面已經說過了伺服器是等待連線的機器,首先想讓其他的客戶端連線上我們的伺服器我們的伺服器處於待機狀態,呼叫accept()方法,注意此方法被呼叫時程式會阻塞,一直到有乙個客戶端連線到伺服器阻塞解除,程式繼續執行
// 偵聽並接受到此套接字的連線。此方法在連線傳入之前一直阻塞。
socket s = ss.accept();
3. 這樣我們就建立起了乙個伺服器,但這樣還不能通訊,因為還沒有傳輸的管道。但是管道裡傳的是什麼呢?通過學習,我們了解到其實究其根本就是傳輸的位元組,更根本的傳的就是01字串。所以我們用流管道來傳輸資訊。
由於通訊的建立是在請求,應答的機制上的,所以乙個socket既要有輸入流,又要有輸出流。
dis = new datainputstream(s.getinputstream());
dos =new dataoutputstream(s.getoutputstream());
客戶端的實現其實和伺服器差不多,只不過由於是主動連線的所以就少了第二部。
根據上面的**,就能實現通訊功能了。下面說幾點需要注意的方面。
1. 伺服器應該時刻監聽,是否有客戶端前來連線。所以不能連線一次後就結束通話。
while (true)
2. 實現群聊功能時,要想所有的伺服器傳送訊息,所以要使用執行緒。乙個客戶端就是乙個執行緒。
// 使伺服器一直處於偵聽狀態
while (true)
3. 協議的規定:我們大家都知道,網路通訊中協議是至關重要的。協議就是計算機通訊網路中兩台計算機之間進行通訊所必須共同遵守的規定或規則。如何定義自己的協議是實現具體功能的約束規則。比如我們實現網路畫圖板時,協議是這樣定義的:byte+int+int+int+int:型別+x1+y1+x2+y2 而接收文字資訊時,協議為:型別+字串長度+字串。有效的定義協議,可以是程式高效的執行。
總之,通訊這塊是個沒有極限的挑戰,你的心有多高,你就能到達乙個什麼樣的高度。
藍傑學習小結 Android布局管理
編輯xml檔案最頭痛的就當屬布局管理了,在adt裡直接提供這些布局,當然還有其他的布局,比如 absolute layout 絕對布局 不推薦 網格布局 在網格布局裡新增元件預設占用一行一列,行列大小可以設定,利用網格布局可以非常方便的寫出計算器的介面,只需設定每乙個按鈕佔幾行級列即可,如果不設定元...
明月出麓山 藍傑同學會
我是一名老師,我叫胡東峰 每天盡職盡責,我的學生昂揚奮進 還有許多柔弱的,我不服 我研究教學技術,教學生寫 程式的刻板枯燥會僵化溫軟的心靈,我不服 我帶的學生,雄姿英發 去了小貓 做個螺絲釘或企鵝帝國去縫補bug 技術工作可能削割人生豐滿,我不服 我們一直勤苦奮爭 勤奮只是卑微生活的遮羞布 堅持也是...
藍盾杯總結
這次比賽是陝西省計算機協會主辦,西安工程大學和西電承辦,算上上週在西安工業大學舉辦的比賽,這個月正好把這兩個容易和我校叫混的學校走了一遍也是緣分啊 這次比賽相對來說,由於種種原因,表現還算中規中矩,加上一些大牛沒來,最後是第二名 一等獎,與第一名失之交臂,不過就名次而言,算是我這個比賽醬油黨的最好成...