【正文】
(1)本次的畢業(yè)設(shè)計(jì)中,對(duì)于 J2ME 的一些基礎(chǔ)知 識(shí),只是很籠統(tǒng)的去介紹,并沒有給予一定的范例。 由于平時(shí)的實(shí)踐機(jī)會(huì)有限,加之 Java 是最近新學(xué)習(xí)的一門語(yǔ)言。點(diǎn)擊【 Yes】后,服務(wù)器和客戶機(jī)成功連接,如圖 (c)和 (d)所示。此外,在發(fā)送線程中還設(shè)置了同步方法,用于保證發(fā)送數(shù)據(jù)的完整性。通過 SocketConnection 對(duì)象的openDataInputStream()方法和 openDataOutputStream()方法 ,得到相應(yīng)的DataInputStream 對(duì)象和 DataOutputStream 對(duì)象。 Sender 類 Sender 類是用來(lái)完成輸出數(shù)據(jù)流的發(fā)送功能的,當(dāng)服務(wù)器端或客戶端運(yùn)行時(shí),就會(huì)啟動(dòng)該類。通過 SocketConnection 對(duì)象的 openDataInputStream()方法和 openDataOutputStream()方法 ,得到相應(yīng)的DataInputStream 對(duì)象和 DataOutputStream 對(duì)象。作為客戶端的手機(jī)上運(yùn)行的是 SocketClient 類,而將 SocketServer 類運(yùn)行在另一部手機(jī)上,作為服務(wù)器端。 圖 客戶端的運(yùn)行結(jié)果 接著運(yùn)行客戶端,出現(xiàn)如圖 (a)所示的界面,輸入文字后,點(diǎn)擊【發(fā)送】,由于涉及網(wǎng)絡(luò)連接等敏感 API,啟動(dòng)時(shí)會(huì)出現(xiàn)提示信息,如圖 (b)所示。在 DataInputStream 對(duì)象和DataOutputStream 對(duì)象中,分別使用相應(yīng)的 reader()方法和 writer()方法可以接收服務(wù)器端送來(lái)的信息和對(duì)服務(wù) 器 端發(fā)送的信息。 SocketThread 類 在 run()方法中,首先定義要連接的服務(wù)器端的 URL: String url=” 。源代碼見附錄 B。當(dāng)監(jiān)聽到客戶端發(fā)送的請(qǐng)求之后,ServerSocket對(duì)象的 accept()方法會(huì)返回一個(gè) Socket對(duì)象以與發(fā)送請(qǐng)求的客戶端進(jìn)行基于 Socket 協(xié)議的網(wǎng)絡(luò)通信。 應(yīng)用程序的設(shè)計(jì) 創(chuàng)建 SocketServer 類,在 SocketServer 類的 main()方法 中,用下列語(yǔ)句創(chuàng)建一個(gè) ServerSocket 對(duì)象: ServerSocket ss=new ServerSocket(12345)。 ()。 //建立輸入數(shù)據(jù)流 InputStream is=()。 //建立輸入數(shù)據(jù)流 DataInputStream is=()。其中 ServerSocketConnection 用于建立連接服務(wù)器的應(yīng)用, SocketConnection 用于建立客戶端的應(yīng)用。并且利用 Socket 協(xié)議可以開發(fā)比較富有彈性的網(wǎng)絡(luò)通信程序。但是,它并非像 TCP 協(xié)議那樣具有很高的可靠性。套接字 (socket)代表 TCP 連接的一個(gè)端點(diǎn),一般服務(wù)器會(huì)在某個(gè)端口監(jiān)聽 socket 連接,如果接受了客戶端的連接請(qǐng)求, 就會(huì)為這個(gè)請(qǐng)求創(chuàng)建一個(gè) socket 與客戶端通信。但是,由于 HTTP 是一種基于請(qǐng)求和響應(yīng)模型的協(xié)議,客戶端向服務(wù)器端發(fā)送 請(qǐng)求,然后等待服務(wù)器端的響應(yīng),而服務(wù)器很難向客戶端主動(dòng)傳輸數(shù)據(jù),因?yàn)槠洳荒芎涂蛻舳私⑦B接。使用號(hào)碼為 5550000 的模擬器向號(hào)碼為 5550001 的模擬器發(fā)送 文本信息 ,運(yùn)行效果如圖 。 江蘇大學(xué)本科畢業(yè)論文 18 圖 添加自定義屬性 圖 注冊(cè)入站連接 ( 3)將源代碼保存到 {toolkit}\apps\SMS\src 項(xiàng)目中。 程序打包及運(yùn)行 效 果 文本信息 收 /發(fā)程序的打包過程如下 : ( 1)啟動(dòng) J2ME 無(wú)線開發(fā)工具 WTK,新建一個(gè)項(xiàng)目,項(xiàng)目名為 SMST, MIDlet類名為 。 ( 4) Inbox 該類描述了收件箱,提供了查看接收的 文本信息 的功能。 ( 3) Receiver 該類提供了打開消息連接及接收 文本信息 的功能。 ( 2) SenderForm 該類提供了編輯 文本信息 的用戶界面和發(fā)送 文本信息 的功能。 該實(shí)現(xiàn)方法共由 4 個(gè)類組成: SMSMIDlet、 SenderForm、 Receiver、 Inbox,它們之間的關(guān)系如圖 所示。 [13] 文本信息 收 /發(fā)設(shè)計(jì) ( 1)發(fā)送 文本信息 。 “ *”匹配任何字符串,“?”匹配任何字符。 ( 1)靜態(tài)注冊(cè) 靜態(tài)注冊(cè)只要在 JAD 文件中添加 MIDletPush 屬性即可。在系統(tǒng)中有一個(gè)已安裝 MIDlet 的入站連接列表,列表中記錄了注冊(cè)的連接及處理江蘇大學(xué)本科畢業(yè)論文 16 此連接的 MIDlet。 If(msg instanceof TextMessage) { //接收的消息為文本消息 TextMessage tMsg=(TextMessage)msg。 public Receiver() { //創(chuàng)建連 接 String address=” 。 } 文本信息 接收文本 信 息的過程如下: ( 1)創(chuàng)建 文本信息 服務(wù)器端連接。 //設(shè)置文本消息內(nèi)容 (“ Hello” )。 下面代碼演示了發(fā)送文本消息的過程。 文本信息 發(fā)送 文本信息 的過程如下: ( 1)創(chuàng)建 文本信息 客戶端連接。下面代碼使用 Connector 類的工作方法創(chuàng)建一個(gè)短消息連接客戶端: MessageConnection mConnc= (MessageConnection)(“ )。服務(wù)器方式用于接收無(wú)線消息,其 URL 地址的格式為: 客戶端方式用于發(fā)送無(wú)線消息,其 URL 地址的格式為: 江蘇大學(xué)本科畢業(yè)論文 14 其中 scheme 表示消息的傳輸協(xié)議,無(wú)線消息 API支持 SMS、 MMS、 CBS 三種傳輸協(xié)議。 ( 4) TextMessage 接口 TextMessage 接口描述了文本內(nèi)容的消息類型,提供了操作文本消息內(nèi)容的方法。如果當(dāng)前消息是被發(fā)送的消息,那么這個(gè)地址表示目的地址;如果當(dāng)前消息是接收的消息,那么這個(gè)地址表示消息發(fā)送者的地址。根據(jù)消息的內(nèi)容,無(wú)線消息被分為文本消息、二進(jìn)制消息和多媒體消息三種消息類型。如果當(dāng)前有消息到來(lái),監(jiān)聽器 mListener 將調(diào)回MessageListener 接口中的 notifyIningMessage 方法。 發(fā)送無(wú)線消息 :Public void send(Message msg) throws IOException, 江蘇大學(xué)本科畢業(yè)論文 13 InterruptedException。圖 顯示了他們之間的關(guān)系。這些不同的底層傳輸機(jī)制具有不同的消息格式和傳輸方法。 本章將設(shè)計(jì)一個(gè)基于無(wú)線消息 接口函數(shù) WMA( Wireless message API)的短信息收 /發(fā)軟件,學(xué)習(xí) WMA的使用。 Java 還提供了用于安全轉(zhuǎn)換 Web 內(nèi)容的擴(kuò)展安全 API,可以更安全的處理移動(dòng)商務(wù)和金融程序所需的事務(wù)。 (1)跨平臺(tái)特性 Java 技術(shù)以其跨平臺(tái)性,即“ 一次 編寫,到處運(yùn)行”的特點(diǎn),已經(jīng)成為智江蘇大學(xué)本科畢業(yè)論文 11 能手機(jī)軟件平臺(tái)的事實(shí)標(biāo)準(zhǔn)。目前 J2ME 領(lǐng)域里使用最廣泛的是移動(dòng)信息設(shè)備簡(jiǎn)表( MIDP) ,它主要是針對(duì)手機(jī)和其它雙向移動(dòng)通信設(shè)備而設(shè)計(jì)的。可選包是針對(duì)簡(jiǎn)表規(guī)范擴(kuò)展的,它為用途廣泛、獨(dú)立于設(shè)備家族的功能提供了相應(yīng)的 Java 類庫(kù)支持。 第三, J2ME 簡(jiǎn)表。 [10] 當(dāng)前 J2ME 存在連接限制設(shè)備配置( CLDC)和連接設(shè)備配置( CDC)兩種配置。 配置在 3 層體系結(jié)構(gòu)中起到了承上啟下的作用,它定義了針對(duì)在總存儲(chǔ)空間、電源、網(wǎng)絡(luò)連接等硬件功能有類似需求的某個(gè)水平范疇或者一組設(shè)備的 Java平臺(tái)。 可 選 包 ( O p t i o n a l P a c k a g e )簡(jiǎn) 表 ( P r o f i l e )配 置 ( C o n f i g u r a t i o n )J A V A 虛 擬 機(jī)主 機(jī) 操 作 系 統(tǒng) 圖 J2ME運(yùn)行環(huán)境體系結(jié)構(gòu) 首先, J2ME 配置。 前兩者組成了 J2ME 的基本運(yùn)行環(huán)境,它們的關(guān)系如圖 所示。隨著 J2ME 的應(yīng)用,為移動(dòng)互聯(lián)引入了一種新的模型,即允許手機(jī)可以從互聯(lián)網(wǎng)上下載各種應(yīng)用程序,并在手機(jī)上創(chuàng)造可執(zhí)行環(huán)境離線運(yùn)行這些程序。本章概念性和了解性的內(nèi)容較多,是整個(gè)設(shè)計(jì)的基礎(chǔ)部分,為后續(xù)章節(jié)的進(jìn)行提供了必要的知識(shí)儲(chǔ)備。該表中有一個(gè)字段存放新創(chuàng)建的套接字的描述符,另一個(gè)字段存放套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的地址。套接字地址是套接字通信結(jié)構(gòu)的描述和定義。 [6] 關(guān)于 Windows 套接字編程 WinSock 是一套開放的、支持多種協(xié) 議的 Windows 網(wǎng)絡(luò)編程接口,是 Windows網(wǎng)絡(luò)編程事實(shí)上的標(biāo)準(zhǔn)。接口用作原始的輸入 /輸出流,如從 Socket 連接或文件中讀取/寫入數(shù)據(jù)流,這兩個(gè)接口分別在基本的 Connection 接口上增加了兩個(gè)方法,一個(gè)用來(lái)打開用于連接的數(shù)據(jù)輸入 /輸出流,另一個(gè)是用來(lái)打開用于連接的輸入 /輸出流。 GCF 的繼承 體系如圖 所示。因?yàn)橐苿?dòng)設(shè)備種類繁多,通用連接框架中只定義了抽象的用于網(wǎng)絡(luò)通信的類和接口,并未給出具體協(xié)議的實(shí)現(xiàn),協(xié)議的實(shí)現(xiàn)由位于 CLDC 之上的簡(jiǎn)表層來(lái)完成。 JAD 文件格式與 Manifest 文件格式一樣,擁有一些相同的屬性。換句話說, MIDP 應(yīng)用程序的安裝、更新和刪除的基本單位是 MIDlets。有一些屬性是強(qiáng)制字段,而另外一些是可選字段。 MIDlet 應(yīng)用程序要被傳輸?shù)綗o(wú)線設(shè)備上 之前,必須把所有相關(guān)文件進(jìn)行打包放到 JAR 文件格式的程序包中。 (3)Destoryed: MIDlet 釋放了它占用的所有資源、終止運(yùn)行后的狀態(tài)。當(dāng) MIDlet 處于 Paused 狀態(tài) 時(shí),他不占有任何共享資源。 [4] M I DN a t i v e S y s t e m S o f t w a r eC L D CM I D PM I D PA p p l i c a t i o n sO E M S p e c i f i cA p p l i c a t i o n sO E M S p e c i f i cC l a s s e sN a t i v eA p p l i c a t i o n s 圖 MIDP的架構(gòu) ( MIDlet)與套件 (MIDlet Suit) MIDP 應(yīng)用程序的基本運(yùn)行單位稱為 MIDlet,類似于網(wǎng)頁(yè)上運(yùn)行的 Applet,江蘇大學(xué)本科畢業(yè)論文 6 有自己 的狀態(tài),并 且他的狀態(tài)變化由 設(shè)備上的程序管理軟件 AMS(Application Management Software)控制。在硬件之上的是本地系統(tǒng),這一層包括操作 系統(tǒng)和設(shè)備所使用的類庫(kù)。 在實(shí)際設(shè)備的軟件架構(gòu)中, MIDP 的邏輯位置如圖 所示。各個(gè)設(shè)備制造廠商都為自己的設(shè)備提供了開發(fā)環(huán)境和模擬器,如 Moto,Nokia 等公司都提供了針對(duì)自己手機(jī)的 J2ME SDK,該 SDK 兼容于 WTK SDK,另外附加提供了一些專有 API,提供了模擬真實(shí)設(shè)備的模擬器。 江蘇大學(xué)本科畢業(yè)論文 4 圖 Eclipse的軟件界面 Tool Kit J2ME Wireless Tool Kit(WTK)是常用的 J2ME SDK,使用 WTK 可以進(jìn)行程序的編譯、校驗(yàn)、運(yùn)行等,由 SUN公司提供。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所 。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。 (5)第五 章,實(shí)現(xiàn)手機(jī)與 PC機(jī)、手機(jī)與手機(jī)之間的即時(shí)通信。 論文組織結(jié)構(gòu) (1)第一章,概述,這部分是對(duì) 本文的研究意義 作簡(jiǎn)要闡述,并對(duì)本文的內(nèi)容作簡(jiǎn)要概括。 (3)Java 技術(shù)提供 了一個(gè)類庫(kù),它使 應(yīng)用開發(fā)商可以創(chuàng)建更為直覺、豐富的用戶界面 (GUI); 基于以上分析, Java 手機(jī)將是未來(lái)手機(jī)的發(fā)展方向,是業(yè)界的熱點(diǎn)。 其次,傳統(tǒng)手機(jī)訪問互聯(lián)網(wǎng)是通過 WAP(Wireless Application Protocol),所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時(shí)、費(fèi)用也比較高。手機(jī)儼然是當(dāng)今社會(huì)生活必不可少的,并且能給人們帶來(lái)豐富多彩的生活。 比如, 證券業(yè)人士可以定制股市行情,地產(chǎn)業(yè)人士可以定制地產(chǎn)信息,經(jīng)常出行的人可以定制天氣預(yù)報(bào),體育迷可以定制體育新聞 ?? 如此豐富的內(nèi)容使每個(gè)行業(yè)、每個(gè)階層的人都能找到屬于自己的信息。 論文 研究的背景 伴隨 著我國(guó)移動(dòng)通信網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大和通訊技術(shù)的不斷成熟,移動(dòng)用戶發(fā)展極為迅速。 send and receive text messages。 At the same time, the update for the Inter and 3G works, put forward a cell phone work realtime chat system development and plement, in the