即興的靈感

          思維是一種藝術; 藝術需要靈感。

          博客好友

          最新評論

          JavaME中使用Socket通信基礎應用

             在JavaME的網絡開發中,我們通常使用的兩種網絡通信協議是HTTP超文本傳輸協議和Socket套接字協議,但是由于HTTP是短連接,因此在某些手機中可能會出現不斷出現連接網絡的提示,因此很多時候我們通過Socket來實現網絡連接。在Socket開發中,我們應用的比較多的是手機端與手機端之間的通信,還有手機與服務器的通信。下面分別簡單歸納下兩種通信的基本實現。
             一、手機端與服務器端的Socket通訊 我們通常需要在手機中實現某些功能,而這些功能需要服務器提供服務,因而在手機中需要建立與服務器之間的有效通信。在服務器端我們使用的是ServerSocket來創建服務socket,代碼如:ServerSocket server = new ServerSocket(4321);,這樣就打開了一個ServerSocket,然后我們使用ServerSocket的accept方法來監聽客戶端建立的連接,該方法在沒有客戶端建立請求的時候會一直處于阻塞狀態,直到有連接建立則形成Socket對象,服務器通常需要為多客戶端同時提供服務,因此一般情況下,我們通過在一個循環中不斷監聽客戶端連接,并為每一個連接創建一個線程提供獨立服務。
             ServerSocket server = new ServerSocket(4321);
             while(true) {
             socket = server.accept();
             new ServerThread(socket).start();
             }
             然后在線程中打開socket的通信數據流與客戶端進行通訊。
             在JavaME中,與JavaSE的socket使用方式有些不同,在打開Socket連接的時候,使用的不是Socket,而是SocketConnection,并由JavaME中的網絡連接類Connector的open方法來建立socket連接,同時,由于open方法返回的是Connection對象,因此需要將其轉化為SocketConnection對象。
             SocketConnection sc = (SocketConnection) Connector.open("socket://127.0.0.1:4321"); 這樣就打開了一個socket連接對象,然后通過獲取該socket的通信流就可以跟服務器之間進行數據交換。
            
             二、手機端與手機端之間的Socket通訊 有些開發應用中,實現了手機與手機之間直接的通訊,這就需要讓一個手機作為服務端,而另一手機作為客戶端來處理,作為客戶端的Socket使用方法與以上(一)中相同,不同的主要是作為服務端的手機程序實現。 同樣的,在JavaME中并不是通過ServerSocket來創建服務Socket的,而是通過ServerSocketConnection來實現,并且一樣是通過Connector來打開連接,使用的方法是acceptAndOpen,具體實現如下:
             ServerSocketConnection ssc = (ServerSocketConnection)Connector.open("socket://:1234");
             SocketConnection sc = (SocketConnection)ssc.acceptAndOpen();
             在得到SocketConnection對象之后便可以通過獲取相應的socket數據流進行通信。
             DataInputStream dis = sc.openDataOutputStream();
             DataOutputStream dos = sc.openDataInputStream();
             以上為分別對手機與服務器端之間、手機與手機之間通過Socket進行通訊的基本方法。

          ?
          鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
          ???? 隱姓埋名/低調華麗/簡單生活/完美人生

          posted on 2009-09-14 15:59 poetguo 閱讀(1700) 評論(0)  編輯  收藏 所屬分類: JAVA 、J2ME

          主站蜘蛛池模板: 淮阳县| 确山县| 比如县| 崇礼县| 西乌珠穆沁旗| 德兴市| 克什克腾旗| 封开县| 满城县| 滨海县| 柘城县| 兴业县| 饶平县| 定安县| 湘乡市| 临湘市| 原阳县| 武平县| 新巴尔虎右旗| 文化| 定边县| 柳州市| 双流县| 民县| 长汀县| 盈江县| 进贤县| 贵南县| 桦南县| 揭东县| 江阴市| 洪湖市| 都兰县| 安平县| 松溪县| 芦溪县| 松滋市| 武陟县| 大新县| 德保县| 五莲县|