【正文】
并且使用ServerSocketConnection 接口建立服務(wù)器套接字,等待客戶機程序的連接。在客戶端不必調(diào)用 flush()方法,系統(tǒng)會立刻 將信息發(fā)送出去。 江蘇大學(xué)本科畢業(yè)論文 23 在客戶端,提供一個 TextField 對象供用戶輸入要發(fā)送的信息,同時創(chuàng)建一個 StringItem 對象以顯示從服務(wù)器端得到的信息。 ServerSocket 類是專門用于提供 Socket 協(xié)議網(wǎng)絡(luò)通信的服務(wù)器的類,傳入的 int 類型的參數(shù)表示監(jiān)聽的網(wǎng)絡(luò)端口號,這里以 12345 作為端口號,所以傳入12345。 //建立輸出數(shù)據(jù)流 OutputStream os=()。 利用 Socket 編寫程序遵循的步驟如下: ( 1) 在服務(wù)器端建立監(jiān)聽端口,等待客戶端進行連接,在該連接上建立輸入輸出數(shù)據(jù)流。如果通信不需要 TCP那樣的可靠性,則可以使用 UDP 協(xié)議。如果客戶端需要知道服務(wù)器端的狀態(tài),就不能等待服務(wù)器主動發(fā)給它,而必須主動向服務(wù)器發(fā)送請求來查詢所需的狀態(tài)。單擊開發(fā)工具的【生成】按鈕,編譯源文件。該類提供了添加信息、顯示信息、瀏覽收件箱等功能。發(fā)送文本消息是在一個線程中完成的,每當用戶發(fā)送一條 文本信息 時,該類都會創(chuàng)建一個新的文本信息 發(fā)送線程。為用戶提供 文本信息 編輯器,并把編輯后的 文本信息發(fā)送到指定地址 。格式如下: MIDletPushn:ConnectionURL,MIDletClassName,AllowedSender 其中, n表示注冊的序號,從 1 開始計算; ConnectionURL表示連接終點的協(xié)議和窗口,與 ()方法的參數(shù)相同,如 MIDletClassName表示處理連接的 MIDlet; AllowedSender表示允許的發(fā)送者,該字段起到一個過濾器的作用,指示 Java 應(yīng)用管理器只能處理特定發(fā)送者的連接。 String msgContent=()。 ( 2)設(shè)置消息監(jiān)聽器。 try{ //創(chuàng)建連接 String address=” 。 使用這個無線消息連接的實例對象可以向 5550001手機上 50000端口上的應(yīng)用程序發(fā)送文本消息。 Public string getPayloadText()— — 返回文本消息的內(nèi)容。在無線消息 API 中分別定義了這三種消息類型的接口。 Public Message newMessage(String type)—— 創(chuàng)建一個無線消息實例對象。但是 WMA規(guī)范使得這些底層的傳輸細節(jié)對于應(yīng)用程序開發(fā)變得透明。 (4)與企業(yè)應(yīng)用的無縫結(jié)合 隨著 J2EE 中間 服務(wù)器的流行, Java 已成為創(chuàng)建 Web 應(yīng)用程序的第一選擇。此外, CDC 規(guī)范和 CLDC 規(guī)范中也都定義了基本的 API 集合,這些 API 提供 Java 的基本功能,例如: 、 、 、 ,這些包就是定義于 CDC 和 CLDC 中。簡表為相同消費電子設(shè)備的不同生產(chǎn)廠商提供標準化的Java 類庫。對配置的說明如下: (1)規(guī)定了所支持的 Java 編程語言特征。運行環(huán)境的核心是 Java 虛擬機,運行于設(shè)備的主機 操作系統(tǒng)之上,在往上是具 體 的 J2ME配置,包括根據(jù)設(shè)備的資源需要提供基本功能的編輯庫。 J2ME 的基本概念 J2ME 是 Sun 公司推出的一個專門面向小型設(shè)備應(yīng)用的“簡易”平臺,這里的小型設(shè)備包括移動電話、個人數(shù)字輔助設(shè)備( PDA)、網(wǎng)絡(luò)電話、數(shù)字電視上的機頂盒、自動娛樂系統(tǒng)、導(dǎo)航系統(tǒng)、網(wǎng)絡(luò)交換以及家用自動電器等。 套接字描述符就是一個整數(shù)類型的值,在 Windows 中的類型是 SOCKET。 ( 3) StreamConnection StreamConnection 接口定義了流連接所需的能力,可以提供輸入流和輸出流,實際上是 InputConnection 和 OutputConnection 接口的封裝。這一設(shè)計大大提高了通用連接框架的適應(yīng)性和擴充性,移動設(shè)備制造商可以根據(jù)需要在簡表中擴充連接框架來對特定協(xié)議提供支持。 每個 MIDlets 都可以存在一個可選的應(yīng)用程序描述文件 JAD(Application Descriptor)。除了 Java 類以外,其他文件諸如圖像和應(yīng)用程序數(shù)據(jù) (即通常所說的資源 ),也可能是這個程序包的一部分,另外還包括描述JAR 內(nèi)容的清單文件 ()。當 AMS 調(diào)用 pauseApp()方法或者MIDlet 自身調(diào)用 notifyPaused()方法后, MIDlet 進入 Paused 狀態(tài)。再上一級,從左到右是上一層的軟件 CLDC。例如 Nokia 提供的Developer’ s Suit SDK。 這種平等和一致性并不僅限于 Java 開發(fā)工具。 (6)第六 章,總結(jié)與展望。 眾所周知, 為了滿足這些信息設(shè)備日益擴大的需求, SUN公司通過引進 J2ME 即 Java 2 Micro Edition 技術(shù)擴大 Java 技術(shù)的使用范圍, J2ME 是 在移動設(shè)備上運行的微型版 Java 平臺 ,也是當前較為流行的開發(fā)工具。 互聯(lián)網(wǎng)的日益更新和發(fā)展以及 3G 技術(shù)應(yīng)用的日益逼近,越來越多基于手機平臺的應(yīng)用更是在飛速發(fā)展,互聯(lián)網(wǎng)和手機應(yīng)用相結(jié)合逐步成為了如今 手機 發(fā)展的新趨勢 ,同時也為 移動應(yīng)用開發(fā)迎來空前的發(fā)展機遇。移動用戶在高速發(fā)展的同時,對移動通信業(yè)務(wù)的需求也越來越高,用戶已不局限于進行基本的通話功能,更需要諸如數(shù)據(jù)、傳真等新業(yè)務(wù)。 Finally, the use of JAVA programming language and simulator SUN provided on the analog phones to send and receive text messages and mobile phone with PC, mobile phone and mobile phone work munication functions. Key words: J2ME。 隨著手機 的 普及、互聯(lián)網(wǎng)的日益更新和發(fā)展、 Java 功能在移動設(shè)備上的實現(xiàn) , 越來越多基于手機平臺的應(yīng)用更是在飛速發(fā)展 , 對豐富人們的 生活內(nèi)容 起著不可忽視的作用。論文首先 介紹了 Eclipse 集成開發(fā)環(huán)境、 J2ME 的體系結(jié)構(gòu)、配置、簡表等基礎(chǔ)知識 ;其 次, 分析了 實現(xiàn) 手機通信功能 的相關(guān)基礎(chǔ)技術(shù) 及理論 , 即無線接口函數(shù)WMA、 MIDP 的網(wǎng)絡(luò)通信功能 等;最后, 運用 JAVA 語言編程,并在 SUN 公司提供的模擬器上模擬手機發(fā)送 和接收文本 信息及手機與 PC 機、手機與手機的網(wǎng)絡(luò)通信的功能。 send and receive text messages。 比如, 證券業(yè)人士可以定制股市行情,地產(chǎn)業(yè)人士可以定制地產(chǎn)信息,經(jīng)常出行的人可以定制天氣預(yù)報,體育迷可以定制體育新聞 ?? 如此豐富的內(nèi)容使每個行業(yè)、每個階層的人都能找到屬于自己的信息。 其次,傳統(tǒng)手機訪問互聯(lián)網(wǎng)是通過 WAP(Wireless Application Protocol),所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時、費用也比較高。 論文組織結(jié)構(gòu) (1)第一章,概述,這部分是對 本文的研究意義 作簡要闡述,并對本文的內(nèi)容作簡要概括。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。 江蘇大學(xué)本科畢業(yè)論文 4 圖 Eclipse的軟件界面 Tool Kit J2ME Wireless Tool Kit(WTK)是常用的 J2ME SDK,使用 WTK 可以進行程序的編譯、校驗、運行等,由 SUN公司提供。 在實際設(shè)備的軟件架構(gòu)中, MIDP 的邏輯位置如圖 所示。 [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)用程序的基本運行單位稱為 MIDlet,類似于網(wǎng)頁上運行的 Applet,江蘇大學(xué)本科畢業(yè)論文 6 有自己 的狀態(tài),并 且他的狀態(tài)變化由 設(shè)備上的程序管理軟件 AMS(Application Management Software)控制。 (3)Destoryed: MIDlet 釋放了它占用的所有資源、終止運行后的狀態(tài)。有一些屬性是強制字段,而另外一些是可選字段。 JAD 文件格式與 Manifest 文件格式一樣,擁有一些相同的屬性。 GCF 的繼承 體系如圖 所示。 [6] 關(guān)于 Windows 套接字編程 WinSock 是一套開放的、支持多種協(xié) 議的 Windows 網(wǎng)絡(luò)編程接口,是 Windows網(wǎng)絡(luò)編程事實上的標準。該表中有一個字段存放新創(chuàng)建的套接字的描述符,另一個字段存放套接字數(shù)據(jù)結(jié)構(gòu)的地址。隨著 J2ME 的應(yīng)用,為移動互聯(lián)引入了一種新的模型,即允許手機可以從互聯(lián)網(wǎng)上下載各種應(yīng)用程序,并在手機上創(chuàng)造可執(zhí)行環(huán)境離線運行這些程序。 可 選 包 ( O p t i o n a l P a c k a g e )簡 表 ( P r o f i l e )配 置 ( C o n f i g u r a t i o n )J A V A 虛 擬 機主 機 操 作 系 統(tǒng) 圖 J2ME運行環(huán)境體系結(jié)構(gòu) 首先, J2ME 配置。 [10] 當前 J2ME 存在連接限制設(shè)備配置( CLDC)和連接設(shè)備配置( CDC)兩種配置??蛇x包是針對簡表規(guī)范擴展的,它為用途廣泛、獨立于設(shè)備家族的功能提供了相應(yīng)的 Java 類庫支持。 (1)跨平臺特性 Java 技術(shù)以其跨平臺性,即“ 一次 編寫,到處運行”的特點,已經(jīng)成為智江蘇大學(xué)本科畢業(yè)論文 11 能手機軟件平臺的事實標準。 本章將設(shè)計一個基于無線消息 接口函數(shù) WMA( Wireless message API)的短信息收 /發(fā)軟件,學(xué)習(xí) WMA的使用。圖 顯示了他們之間的關(guān)系。如果當前有消息到來,監(jiān)聽器 mListener 將調(diào)回MessageListener 接口中的 notifyIningMessage 方法。如果當前消息是被發(fā)送的消息,那么這個地址表示目的地址;如果當前消息是接收的消息,那么這個地址表示消息發(fā)送者的地址。服務(wù)器方式用于接收無線消息,其 URL 地址的格式為: 客戶端方式用于發(fā)送無線消息,其 URL 地址的格式為: 江蘇大學(xué)本科畢業(yè)論文 14 其中 scheme 表示消息的傳輸協(xié)議,無線消息 API支持 SMS、 MMS、 CBS 三種傳輸協(xié)議。 文本信息 發(fā)送 文本信息 的過程如下: ( 1)創(chuàng)建 文本信息 客戶端連接。 //設(shè)置文本消息內(nèi)容 (“ Hello” )。 public Receiver() { //創(chuàng)建連 接 String address=” 。在系統(tǒng)中有一個已安裝 MIDlet 的入站連接列表,列表中記錄了注冊的連接及處理江蘇大學(xué)本科畢業(yè)論文 16 此連接的 MIDlet。 “ *”匹配任何字符串,“?”匹配任何字符。 該實現(xiàn)方法共由 4 個類組成: SMSMIDlet、 SenderForm、 Receiver、 Inbox,它們之間的關(guān)系如圖 所示。 ( 3) Receiver 該類提供了打開消息連接及接收 文本信息 的功能。 程序打包及運行 效 果 文本信息 收 /發(fā)程序的打包過程如下 : ( 1)啟動 J2ME 無線開發(fā)工具 WTK,新建一個項目,項目名為 SMST, MIDlet類名為 。使用號碼為 5550000 的模擬器向號碼為 5550001 的模擬器發(fā)送 文本信息 ,運行效果如圖 。套接字 (socket)代表 TCP 連接的一個端點,一般服務(wù)器會在某個端口監(jiān)聽 socket 連接,如果接受了客戶端的連接請求, 就會為這個請求創(chuàng)建一個 socket 與客戶端通信。并且利用 Socket 協(xié)議可以開發(fā)比較富有彈性的網(wǎng)絡(luò)通信程序。 //建立輸入數(shù)據(jù)流 DataInputStream is=()。 ()。當監(jiān)聽到客戶端發(fā)送的請求之后,ServerSocket對象的 accept()方法會返回一個 Socket對象以與發(fā)送請求的客戶端進行基于 Socket 協(xié)議的網(wǎng)絡(luò)通信。 SocketThread 類 在 run()方法中,首先定義要連接的服務(wù)器端的 URL: String url=” 。 圖 客戶端的運行結(jié)果 接著運行客戶端,出現(xiàn)如圖 (a)所示的界面,輸入文字后,點擊【發(fā)送】,由于涉及網(wǎng)絡(luò)連接等敏感 API,啟動時會出現(xiàn)提示信息,如圖 (b)所示。通過 SocketConnection 對象的 openDataInputStream()方法和 openDataOutputStream()方法 ,得到相應(yīng)的DataInputStream 對象和 Da