Android學習 寫個小例項

2021-08-30 03:31:02 字數 2033 閱讀 9234

學了不少基礎的知識,拼乙個完整點的小例子吧!

目標:完成乙個與pc

機互發訊息的聊天程式。

。我們就想試一試用socket

來實現雙機對聯。先試通socket

通訊,pc

機當伺服器,手機當客戶端。

通常,我們寫pc

的socket

程式時,了解到,伺服器端是採用socket

監聽程式來監聽網路的某個埠,當客戶端連入時,伺服器監聽程式返回乙個socket

物件來收發訊息。客戶端要連線到伺服器端時,需要知道對方的ip

和埠。在本例項中,伺服器端我們採用c#

來實現。

c#

服務端l

監聽服務:

ipaddress ip = ipaddress.parse("127.0.0.1");

mylist = new tcplistener(ip,8001); //8001

為埠號

mylist.start(); l

開始監聽:

tcpclient client = mylist.accepttcpclient(); //

程式將會卡住,是同步執行不是非同步。一旦客戶端接入時,建立物件,繼續執行。

l傳送訊息:

streamwriter writer = new streamwriter(client.getstream());

writer.write(context + (char)13 + (char)10);

writer.flush();

注意:在傳送的訊息內容中,結尾必須要加上回車換行。如是不加,android

中接收會出錯(

會報bad package)

。具體原來我也不清楚l

l接收訊息:

byte readbuffer = new byte[read_buffer_size];

this.client.getstream().beginread(readbuffer, 0, read_buffer_size, new asynccallback(streamreceiver), null);

int bytesread = client.getstream().endread(ar);

retstring= encoding.ascii.getstring(readbuffer, 0, bytesread - 1);

android

客戶端l

連線服務

socket socket = new socket("10.0.2.2", 8001);

在模擬器中,連線到pc

端採用的ip

是"10.0.2.2"

,埠用伺服器端監聽的埠。

l傳送訊息

dataoutputstream dos=new dataoutputstream(socket.getoutputstream());

dos.write(str.getbytes()); l

接收訊息

bufferedreader mreader = new bufferedreader(new inputstreamreader(socket.getinputstream(), "utf-8"),8192);

string strret = mreader.readline(); //

同樣,執行讀時,程式也會卡住,等待資訊。

l斷開連線

socket.shutdowninput(); //

需要調此方法,不然mreader.readline

還傻傻掛著。

socket.shutdownoutput();

socket.close();

在編寫通訊程式時,由於讀訊息都是同步的,所以一般我們會採用執行緒來處理。

這章就寫到這裡,簡單的通訊也就跑起來了,下次再把介面整得好看一點。

自己寫個小總結

從入行as3到現在差不多有1年的時間了,從最開始的懵懵懂懂,看著殿堂之路都能睡著的狀態到現在已經可以自己寫一些 模組了。今天正好有時間做個總結,並規劃一下將來需要發展的方向。隨著頁遊的市場越來越火爆,對as的程式設計師的需求也越來越多,技術要求也越來越高。針對flash的技術來說,比較重要的幾個方面...

Android基礎學習例項

一 fragmentdemo1 中包括 1 fragment的使用 2 getlayoutinflater inflate的使用 3 對於radio 的使用 4 對於布局管理器中的一些屬性測試 5 1 控制項中顯示html 2 控制項中文字樣式的處理 6 日期 和時間控制項的使用 7 對話方塊測試 ...

寫個小程式01 註冊微信小程式

出於興趣和學習目的,我想自己做乙個基於 子彈筆記 bullet journal 的小程式。由於個人開發經驗很有限,只在課程作業中寫過 web 前端,所以也不知道多久能寫出來 逃 因此想通過部落格記錄一下開發過程 學習資料 踩過的坑等等。本系列文章主要計畫用於個人學習總結,如果恰好對你有幫助那真是太好...