999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的客戶端與服務器的通訊架構設計

2016-10-18 09:59:04李翔宇曹路圓
制造業自動化 2016年9期
關鍵詞:界面程序數據庫

劉 源,李翔宇,吳 迪,曹路圓,涂 猛

(1.北京機械工業自動化研究所,北京 100120;2.機械科學研究總院,北京 100044)

基于Android的客戶端與服務器的通訊架構設計

劉源1,李翔宇2,吳迪1,曹路圓1,涂猛1

(1.北京機械工業自動化研究所,北京 100120;2.機械科學研究總院,北京 100044)

移動辦公正在逐漸改變著企業的辦公方式,其應用范圍也越來越廣泛,從即時通信、辦公文檔處理、ERP、CRM到員工工作匯報和考勤等,幾乎涵蓋了企業辦公的方方面面,根據實際工作需要,架構了一個在Android手機客戶端上實現與服務器端通過套接字通訊的企業員工信息管理系統,從而實現了一個完成手機需求的信息通道。

套接字;客戶端;信使;Service

0 引言

無紙化是信息化進程的一個理想目標,在無紙化和數字化的進程中,企業既能提高效率,又能實現環保。很多企業正在采取措施改善工作方式。計算機辦公很好的實現了無紙化辦公。而相比于計算機操作系統下的辦公軟件,手機版辦公軟件具有便于攜帶,硬件成本低,聯網便捷等優勢。由此,文章提出了架構于手機操作系統之上的信息管理系統的一種設計方案。

1 通訊架構簡介

套接字通訊是網絡通訊方式中一種很常用的架構方式,一般用于手機客戶端與服務器上的服務器端程序建立可靠的、雙向的、持續的、點對點的通訊連接。服務器端的監聽程序用于監聽手機客戶端的連接請求,一旦監聽到客戶端發送過來的連接請求,服務器端與客戶端就會建立可靠的連接,客戶端可以向服務器端發送用戶登錄信息校驗、查詢數據庫數據表、更新數據庫內信息表、刪除數據庫已知數據等請求。同步手機客戶端的系統時間為“網絡提供的時間”,同時將計算機設置為自動與“times.windows.com”同步,通過在Eclipse上的Log監聽客戶端發送的時間點以及觀察在服務端接收數據后的斷點前面的時間點,通過實際測試比較得到用戶登錄信息校驗的處理時間為285ms,查詢數據庫數據表的處理時間為291ms,更新數據庫內信息表的時間為263ms,刪除數據庫已知數據的處理時間為271ms。可以發現套接字通訊的處理時間均為毫秒級別,套接字通訊不僅保證了數據準確,而且還做到了數據接收的迅速響應。由此,可以發現套接字通訊在企業辦公領域中具有較好的實用性、可靠性,靈活性。同理,客戶端也可以接受服務器端反饋回來的校驗結果、查詢數據表得來的用戶需求數據、取得數據庫操作結果狀態代碼等。同時,套接字程序可以通過手機Wi-Fi、3G、4G等通訊方式實現更加自由更加流暢的通訊。

2 服務器端實現

信息管理系統的服務器端是在Visual Studio開發平臺下采用C#語言編寫的控制臺應用程序,啟動服務器后,當按下服務器的btnStartServer_Click按鈕時,服務器將啟動監聽程序,監聽程序的部分代碼如下:

private void ConnectListen(object server) //監聽程序

{Socket serverSocket=(Socket)server;//建立服務器端套接字

serverSocket.Listen(20);//啟動監聽

while (true){

Socket acceptSock=serverSocket.Accept();//建立連接

byte[] byteArray=new byte[112];//定義接收數組

acceptSock.Receive(byteArray);//采用字節數組接收數據

Char[] charCode=Encoding.ASCII. GetChars(byteArray);} //將數組編碼

字符型數組charCode[]用于接收客戶端發來的各種請求或命令,當接收到的命令是需要進行用戶登錄的校驗時,服務器端會解析數組內的代碼并交由dataConn類來處理,dataConn類所定義的GetValue()方法會訪問數據庫內的用戶信息表,得到校驗結果將返回給ConnectListen()方法,如果登錄成功,則ConnectListen()方法會調用套接字的發送程序SendFile()方法。發送程序SendFile()將數據發往客戶端。圖1描述了服務器端啟動后監聽程序與數據處理程序的工作流程。

圖1 服務器端功能圖

3 客戶端實現

Android操作系統從其在2008年發布發條機器人1.0版本以來,已取得巨大的成功,如今它已成為主流的手機操作系統之一,Android是一種以Linux和JAVA為基礎的開放源代碼操作系統。本文中客戶端是在eclipse開發平臺下采用JAVA語言編寫,作為套接字程序的客戶端Client,用于發送請求到服務器并接收服務器返回的查詢結果并調用UI顯示界面,實現數據對程序的驅動。但是,在實際開發中如果直接把大量的數據和算法以及UI的更新都實現在主程序中,將會占用大量系統內存及造成程序的卡頓,還會帶來線程安全性等問題。由此,我們采用客戶端Service來處理客戶端通訊數據。在Android系統開發中,Service是一個重要的組成部分。如果某些程序是不希望用戶看見的,那么可以將這些程序定義在Service中,這樣就可以完成程序的后臺運行(也可以在不顯示界面的情況下運行),即Service實際上相當于一個沒有圖形界面的Activity程序,而且當用戶要執行某些需要跨進程訪問時,也可以使用Service來完成。Service是一個沒有UI界面的操作組件,主要的功能是為Activity程序提供一些必要的支持,如手機中的MP3播放軟件等,當回到主界面時這些組件依然可以運行,同樣,我們就可以把客戶端的接收程序及發送程序寫在Service類實例的內部。圖2為客戶端消息傳遞結構圖。

圖2 客戶端信息傳遞結構圖

首先,需要為客戶端建立基于套接字架構的客戶端通訊實例Instance(圖2的通訊4),其通訊代碼如下:

同時,在主界面程序中每次切換主界面都需要與Servie服務進行綁定(圖2的綁定2)。綁定后客戶端的主程序就可以與Service建立實時的消息傳遞通道。其代碼如下:

綁定后的Service與運行中的Activity程序的通訊通過Messenger信使來實現(圖2的消息3),從而實現了基于消息的進程間通信。進程間的通信其實是在客戶端發送一個Message到服務端,在服務端的handler中會接收到客戶端的信息,然后服務端對信息進行處理,同樣,如果在服務端也可以將信息封裝成Message,再發回給客戶端,客戶端的handler會接收到信息。服務器端創建信使Messenger的代碼如下:

在信息管理系統中,信使將會處理包括用戶登錄信息,工作匯報請求,請假信息發布,出差申請等操作為Message消息,通過Messenger發往Service服務,在Service中,消息會通過套接字發往服務器。服務器在數據流內讀取數據,將數據解析成命令,不同的命令將會觸發不同的功能。這些功能將會訪問數據庫,讀取所需的字段或者表結構,經過處理后通過套接字發往手機客戶端。同理,由套接字傳遞到Service服務的數據庫數據或者登錄狀態將會通過Service內部的Messenger處理成Message,然后發往與之綁定的主Activity程序,主程序端的handler負責解析Message,消息將會被解析為手機操作系統可以讀取的數據,數據將會驅動手機客戶端的UI界面。圖3為登錄前后界面變化的情況。

圖3 登錄前后界面變化

4 結束語

本文提出描述了信息管理系統的登錄功能,在登錄過程中采用了套接字架構與跨進程通訊信使通道。在管理系統實現其他功能時采用同一個回路即可實現應用功能,只需要斷開Service服務與主Activity的綁定,切換UI界面后再重新綁定Activity與Service,就可以繼續使用Service實例內的套接字程序完成遠程網路通訊。

[1] 李興華.Android開發實戰經典[M].清華大學出版社.

Design of communications architecture bentween client and server base on Android

LIU Yuan1,LI Xiang-yu2,WU Di1,CAO Lu-yuan1,TU Meng1

TP39

B

1009-0134(2016)09-0138-03

2016-07-21

劉源(1987 -),男,遼寧葫蘆島人,助理工程師,本科,研究方向為現場制造執行系統的軟件實施。

猜你喜歡
界面程序數據庫
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
人機交互界面發展趨勢研究
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 超碰91免费人妻| 国产欧美日韩专区发布| 久草视频福利在线观看| 亚洲第一色网站| 国产成人精品一区二区免费看京| av天堂最新版在线| 亚洲中久无码永久在线观看软件| AV在线天堂进入| 伊人国产无码高清视频| 无码一区二区三区视频在线播放| 992Tv视频国产精品| av尤物免费在线观看| 国产呦精品一区二区三区下载| 99在线小视频| 日本色综合网| 狠狠色香婷婷久久亚洲精品| 国产成人福利在线| 久久狠狠色噜噜狠狠狠狠97视色| 欧美成人h精品网站| 99久久精品国产综合婷婷| 精品一区二区三区四区五区| 国产精品毛片在线直播完整版| 亚洲中文字幕在线精品一区| 天堂亚洲网| 国产免费久久精品99re不卡| 国产91色在线| 玖玖精品在线| 伊人婷婷色香五月综合缴缴情 | 色婷婷狠狠干| 日韩一区精品视频一区二区| 欧美精品高清| 中文字幕啪啪| 精品少妇人妻无码久久| 少妇精品在线| 亚洲精品国产综合99| 无遮挡国产高潮视频免费观看| 国产网友愉拍精品视频| 婷婷开心中文字幕| 色综合天天综合中文网| 国产男女XX00免费观看| 欧美日韩成人| 中字无码精油按摩中出视频| 亚洲精品欧美日韩在线| 全部免费毛片免费播放| 久久香蕉国产线| 国产精品亚欧美一区二区| 国产喷水视频| 在线无码av一区二区三区| 成人午夜网址| 99视频精品在线观看| 国产亚洲欧美在线中文bt天堂| 国产美女叼嘿视频免费看| 国产福利一区在线| 玩两个丰满老熟女久久网| 国产精品夜夜嗨视频免费视频| 精品国产污污免费网站| 亚洲精品777| 国产中文一区a级毛片视频| 欧美精品亚洲精品日韩专区| 5555国产在线观看| 午夜在线不卡| 日韩精品一区二区三区中文无码 | 久久 午夜福利 张柏芝| 中文字幕中文字字幕码一二区| 亚洲日产2021三区在线| 欧美97欧美综合色伦图| 视频二区国产精品职场同事| 免费看美女自慰的网站| 亚洲性网站| 日本道中文字幕久久一区| 人妻精品久久无码区| 亚洲国产成人精品一二区| 一级毛片无毒不卡直接观看| 亚洲欧美色中文字幕| 欧美色伊人| 亚洲一区第一页| 国产欧美专区在线观看| 91视频精品| 国产丝袜无码一区二区视频| 欧美不卡视频一区发布| 国内毛片视频| 亚洲嫩模喷白浆|