• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Android的互聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用設(shè)計

      2012-04-29 00:44:03林春坤陳耀華
      電腦知識與技術(shù) 2012年23期
      關(guān)鍵詞:網(wǎng)關(guān)

      林春坤 陳耀華

      摘要:該設(shè)計是基于Android平臺設(shè)計互聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用,使局域網(wǎng)中的其他設(shè)備能夠通過網(wǎng)關(guān)設(shè)備的移動通信接口接入互聯(lián)網(wǎng)。應(yīng)用Java語言分別編寫服務(wù)器端的程序和Android手持終端的客戶端程序,使之能從手持終端輸入信息,并發(fā)送到PC端服務(wù)器上。

      關(guān)鍵詞:Android;網(wǎng)關(guān);Socket

      中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)23-5568-05

      RFID Engine Design and Implementation Based on Complex Event Processing

      LIN Chun-kun1, CHEN Yao-hua2

      (1.Huizhou Public Security Bureau,Huizhou 516002,China;2.School of Mechanical and Electric Engineering, Guangzhou University, Guangzhou 510006, China)

      Abstract: The design is based on the Android operating system, Java language and Eclipse development tools write two programs, namely Android_Client, PC_Server. PC_Server running as a server at the PC side, Android_Client devices in the Android operating system as a cli? ent, and systems to enable Android device from the input message, sent to the PC-server, in order to achieve the system devices and PC via Android TCP Socket Communication.

      Key words: android; gateway; socket

      1概述

      隨著科技的發(fā)展,智能系統(tǒng)運用到生活的產(chǎn)品越來越多。Android操作系統(tǒng)作為一個開源操作系統(tǒng),正在廣發(fā)地運用到生活的各個方面,為人們提供更加便捷,舒適的生活體驗。而基于Android系統(tǒng)的應(yīng)用開發(fā)也在廣泛地展開。

      本設(shè)計是基于Android系統(tǒng)的互聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用設(shè)計。在Android系統(tǒng)中,運用Java語言進(jìn)行網(wǎng)絡(luò)編程,通過TCP Socket實現(xiàn)了PC端服務(wù)器和Android開發(fā)板之間的通信,使之能夠從Android系統(tǒng)的設(shè)備上輸入消息,發(fā)送到PC端服務(wù)器上,并在PC端服務(wù)器上顯示消息內(nèi)容,從而實現(xiàn)Android系統(tǒng)設(shè)備和PC的TCP Socket通信。

      2 Android手機操作系統(tǒng)的介紹

      Android操作系統(tǒng)是由Google公司在2007年11月宣布的基于Linux 2.6.29內(nèi)核的開源手機操作系統(tǒng),該系統(tǒng)主要由操作系統(tǒng)、中間件、用戶界面、和應(yīng)用程序軟件組成。Android操作系統(tǒng)采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要由這四個部分組成。而底層Linux內(nèi)核只提供基本功能,至于其他的應(yīng)用軟件則由各公司各自進(jìn)行開發(fā),大部分的應(yīng)用程序都是以Java編寫為主。

      2.1 Android操作系統(tǒng)的組成

      Android操作系統(tǒng)是一個全新的開源手機操作系統(tǒng),該系統(tǒng)包含了非常多的開源代碼。Android操作系統(tǒng)主要由四層組成,如圖1所示,它們分別是:

      第一層:Linux操作系統(tǒng)與底層的相關(guān)驅(qū)動(主要由C語言實現(xiàn));

      第二層:本地代碼框架(主要由C、C++實現(xiàn));

      第三層:Java框架(由Java代碼實現(xiàn));

      第四層:Java應(yīng)用程序(由Java代碼實現(xiàn))。

      第一層與第二層之間,在Linux操作系統(tǒng)的角度看來,是內(nèi)核空間與用戶空間的分界線,第一層運行與內(nèi)核空間,第二、三、四層運行于用戶空間。

      第二層與第三層之間,是本地代碼層和Java代碼層的接口。

      第三層與第四層之間,是Android的系統(tǒng)API的接口,對Android應(yīng)用程序的開發(fā),第三層以下的內(nèi)容是不可見的。

      Android的核心系統(tǒng)是基于Linux2.6.29的內(nèi)核,其中包括安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧與驅(qū)動模型。Liunx內(nèi)核同時也作為硬件和軟件棧之間的抽象層。Android操作系統(tǒng)除了標(biāo)準(zhǔn)的Linux內(nèi)核外,該系統(tǒng)還需要增加內(nèi)核的驅(qū)動程序,例如:聲卡驅(qū)動、顯卡驅(qū)動、輸入設(shè)備驅(qū)動、藍(lán)牙驅(qū)動、攝像頭驅(qū)動、WiFi驅(qū)動、電源管理、存儲器驅(qū)動、觸摸驅(qū)動等。

      2.2 Android應(yīng)用程序的的組成

      通常情況下,Android的應(yīng)用程序由以下4個部分組成:

      1)活動(Activity)

      活動(Activity)是Android應(yīng)用程序中一個最基本的組件,在Android應(yīng)用程序中,一個Activity可以是一個單獨的用戶界面。每一個Activity都被實現(xiàn)為一個獨立的類,并從Activity的基類中繼承而來,Activity將會顯示由視圖控件(VIew)組成的用戶接口,并且對事件(Event)做出響應(yīng)。而在現(xiàn)實中,絕大部分的應(yīng)用程序都會有多個用戶界面,因此就會有多個相對應(yīng)的Activity。

      2)廣播接收器(BroadcastReceiver)

      廣播接收器(BroadcastReceiver)的作用是讓應(yīng)用程序?qū)σ粋€外部事件做出相關(guān)的響應(yīng)。例如:短信接收事件、可用的無線WIFI網(wǎng)絡(luò)連接通知、未接來電提醒、未閱電子郵件等。

      3)服務(wù)(Service)

      一個服務(wù)(Service)是一個沒有實際的用戶界面,但具有一段較長生命周期的程序。例如:比如我們打開手機的飛行模式,WIFI,未接來電轉(zhuǎn)接等服務(wù),都不能看到實際的用戶界面。

      4)內(nèi)容提供者(Content Provider)

      應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件或SQLite數(shù)據(jù)庫中,甚至是任何有效的設(shè)備中。當(dāng)需要將數(shù)據(jù)與其他的應(yīng)用共享時,內(nèi)容提供者將會很有用。一個內(nèi)同提供者類實現(xiàn)了一組標(biāo)準(zhǔn)的方法,從而能夠讓其他應(yīng)用程序或讀取此內(nèi)容提供者處理的各種數(shù)據(jù)類型。

      3網(wǎng)關(guān)設(shè)計原理

      3.1 TCP Socket基本通信模型簡介

      Transmission Control Protocol傳輸控制協(xié)議(TCP)是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運輸層(Transport layer)通信協(xié)議。由IETF的RFC 793說明(specified)。在簡化的計算機網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能。通過TCP可以實現(xiàn)各種異構(gòu)網(wǎng)絡(luò)或異種機之間的互聯(lián)通信。

      如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上傳送到TCP層。TCP將包排序并進(jìn)行錯誤檢查,同時實現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。TCP將它的信息送到更高層的應(yīng)用程序,應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。

      TCP Socket基本通信模型如圖2所示。

      圖2 TCP Socket基本通信模型圖

      3.2 Server與Client的設(shè)計思路

      Server-Client程序設(shè)計基本框架如圖3所示。

      圖3 Server-Client程序設(shè)計基本框架圖

      3.2.1 PC服務(wù)器端(Server)的設(shè)計思路

      1)用WSAStartup()函數(shù)檢查系統(tǒng)協(xié)議棧的安裝情況;

      2)用socket()函數(shù)創(chuàng)建PC服務(wù)器端的套接口;

      3)用bind()函數(shù)將創(chuàng)建的套接口與PC服務(wù)器IP地址綁定;

      4)用listen()函數(shù)通過監(jiān)聽使PC服務(wù)器設(shè)定的端口準(zhǔn)備接收連接;

      5)用accept()接收來自Android客戶端由connect()函數(shù)發(fā)出的連接請求;

      6)建立連接后,用send()函數(shù)向Android客戶端發(fā)送數(shù)據(jù),PC服務(wù)器用recv()函數(shù)接收數(shù)據(jù);7)通信結(jié)束后,使用closesocket()函數(shù)關(guān)閉連接;

      8)最后通過調(diào)用WSACleanup()函數(shù),結(jié)束Winsock Sockets API。PC服務(wù)器端主要代碼解析:

      public class TCPDesktopServer implements Runnable{ public static final String SERVERIP = "192.168.2.40"; public static final int SERVERPORT =1234;

      上面這段代碼主要作用是綁定PC端Server的IP地址和端口號。

      public void run() {

      try {

      System.out.println("1.PC端服務(wù)器已啟動");

      System.out.println("");

      System.out.println("2.等待Android客戶端連接,并接收消息......");

      System.out.println("");

      上面這段代碼主要作用是在DOS窗口中提示PC服務(wù)器啟動情況。

      ServerSocket serverSocket = new ServerSocket(SERVERPORT);

      while (true) {

      Socket client = serverSocket.accept();

      //System.out.println("S: Receiving...");

      try {

      BufferedReader in = new BufferedReader(new

      InputStreamReader(client.getInputStream()));

      String str = in.readLine();

      System.out.println("Android客戶端:" + str);

      }catch(Exception e){

      System.out.println("出錯了....."); e.printStackTrace();

      }finally{

      client.close();

      上面這段代碼主要作用是創(chuàng)建一個新的ServerSocket對象,監(jiān)聽、捕捉通過Socket連接的客戶端,一直阻塞到有Android客戶端連接,應(yīng)用Socket創(chuàng)建BufferedReader對象,用于接收Socket Stream中的數(shù)據(jù),并顯示從Android客戶端接發(fā)送過來的消息。若過程中出現(xiàn)異常,就捕捉異常,最后斷開連接。

      3.2.2 Android客戶端程序(Client)的設(shè)計思路

      1)用WSAStartup()函數(shù)檢查系統(tǒng)協(xié)議棧的安裝情況;

      2)用socket()函數(shù)創(chuàng)建Android客戶端的套接口;

      3)用connect()函數(shù)發(fā)出也服務(wù)器建立連接的請求;

      4)在建立連接后,用send()函數(shù)向PC端服務(wù)器發(fā)送數(shù)據(jù),Android客戶端用recv()函數(shù)接收數(shù)據(jù);

      5)通信結(jié)束后,用closesocet()函數(shù)關(guān)閉套接口;

      6)最后通過調(diào)用WSACleanup()函數(shù),結(jié)束Winsock Sockets API;

      Android客戶端代碼解析:

      public class main extends Activity implements OnClickListener{

      /** Called when the activity is first created. */

      private EditText edtmsgcontent;

      private Button btnSend;

      private String ip="192.168.2.40";

      private int port=1234;

      @Override

      上面這段代碼主要作用是定義聲明需要用到的UI元素設(shè)定服務(wù)器的IP地址、和服務(wù)器所監(jiān)聽的端口號。

      public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      //setContentView(R.layout.main);

      InitView();

      }

      private void InitView()

      {

      setContentView(R.layout.main);

      edtmsgcontent=(EditText)findViewById(R.id.msgcontent);

      btnSend=(Button)findViewById(R.id.btnsend);

      btnSend.setOnClickListener(this);

      }

      上面這段代碼主要作用是顯示主界面,通過id獲取ui元素對象,為btnsend設(shè)置點擊事件。

      public void onClick(View bt)

      {

      try

      {

      String msg=edtmsgcontent.getText().toString();

      if(!TextUtils.isEmpty(msg))

      SendMsg(ip,port,msg);

      else

      {

      Toast.makeText(this,"請先輸入要發(fā)送的消息.....",

      Toast.LENGTH_LONG);

      edtmsgcontent.requestFocus();

      }}

      catch (Exception e) {

      // TODO Auto-generated catch block e.printStackTrace();

      }}

      上面這段代碼主要作用是通過onclick方法設(shè)定消息發(fā)送的IP地址和端口號,還有消息的內(nèi)容。若沒有輸入消息,則提示:“請先輸入發(fā)送的消息……”。

      4結(jié)論

      系統(tǒng)操作效果如圖4所示。整個系統(tǒng)的設(shè)計可以滿足智能空間中對網(wǎng)絡(luò)的低成本、低復(fù)雜度和高可靠性的要求,可以極大地降低信息的冗余度,方便管理維護多分布、多種類的信息和任務(wù)。該系統(tǒng)在實驗室中得到驗證。

      參考文獻(xiàn):

      [1]韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社, 2010:47-50.

      [2]張利國,代聞,龔海平.Android移動開發(fā)案例詳解[M].北京:人民郵電出版社, 2010:76-83.

      [3] (美)希爾特.JAVA實用教程[M].4版.楊繼萍,譯.北京:清華大學(xué)出版社,2008:23-56.

      [4](美)J.布洛克(Joshua Bloch. Effective Java中文版[M].潘愛民,譯.北京:機械工業(yè)出版社m2003.94-101,

      [5]王吳迪,趙楓朝.Java開發(fā)與應(yīng)用教程[M].北京:電子工業(yè)出版社,2006.35-47.

      [6]余志龍.Android SDK開發(fā)范例大全[M].北京:人民郵電出版社,2009:62-70.

      猜你喜歡
      網(wǎng)關(guān)
      基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計
      信號系統(tǒng)網(wǎng)關(guān)設(shè)備的優(yōu)化
      LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
      移動通信(2015年18期)2015-08-24 07:45:08
      應(yīng)對氣候變化需要打通“網(wǎng)關(guān)”
      太陽能(2015年7期)2015-04-12 06:49:50
      一種實時高效的伺服控制網(wǎng)關(guān)設(shè)計
      基于Zigbee與TCP的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計
      河南科技(2014年18期)2014-02-27 14:14:43
      崇仁县| 娄烦县| 宜兴市| 楚雄市| 正镶白旗| 韶关市| 闻喜县| 武陟县| 南宁市| 定西市| 墨脱县| 襄城县| 金阳县| 中西区| 丰县| 临海市| 云浮市| 栾川县| 忻城县| 子长县| 绥芬河市| 安溪县| 金溪县| 余江县| 长岭县| 蕉岭县| 衡南县| 淮阳县| 容城县| 正安县| 永登县| 即墨市| 汉阴县| 丰宁| 吴忠市| 四会市| 南江县| 小金县| 宜兴市| 旺苍县| 丰原市|