J2ME中使用Socket開(kāi)發(fā)聯(lián)網(wǎng)程序1_JSP教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:J2ME編程實(shí)踐之靈活的RMS應(yīng)用
      MIDP應(yīng)用程序的標(biāo)準(zhǔn)持久化方案就是使用RMS。RMS類似于一個(gè)小型數(shù)據(jù)庫(kù),RecordStore相當(dāng)于數(shù)據(jù)庫(kù)的表,每個(gè)“表”由若干記錄(Record)構(gòu)成,一條記錄就是一個(gè)用int表示的記錄號(hào)RecordI

      在J2ME中基于UDP協(xié)議編程一文中介紹了如何使用Datagram和DatagramConnection來(lái)開(kāi)發(fā)應(yīng)用程序,本文將主要講述在MIDP2.0中使用ServerSocketConnection和SocketConnection來(lái)開(kāi)發(fā)聯(lián)網(wǎng)應(yīng)用程序。TCP協(xié)議是可以保證傳輸?shù)馁|(zhì)量的,這也是他和UDP的一大區(qū)別。由于以上談到的四個(gè)類都屬于GCF,他們?cè)诔绦蚓帉?xiě)方面也非常相似,通常我們?cè)赟erver端的某個(gè)端口監(jiān)聽(tīng),當(dāng)客戶端連接服務(wù)器的時(shí)候,則可以得到一個(gè)SocketConnection的實(shí)例。通過(guò)兩端的SocketConnection則可以實(shí)現(xiàn)C/S結(jié)構(gòu)的通信了。

      首先看一下,ServerSocketConnection類,它的一個(gè)非常重要的方法就是acceptAndOpen()方法,這個(gè)方法返回一個(gè)SocketConnection實(shí)例,從而使得客戶端和服務(wù)器端可以通過(guò)socket通信了。典型的代碼如下:

      // Create the server listening socket for port 1234

      ServerSocketConnection scn = (ServerSocketConnection)

      Connector.open("socket://:1234");

      // Wait for a connection.

      SocketConnection sc = (SocketConnection) scn.acceptAndOpen();

      // Set application specific hints on the socket.

      sc.setSocketOption(DELAY, 0);

      sc.setSocketOption(LINGER, 0);

      sc.setSocketOption(KEEPALIVE, 0);

      sc.setSocketOption(RCVBUF, 128);

      sc.setSocketOption(SNDBUF, 128);

      // Get the input stream of the connection.

      DataInputStream is = sc.openDataInputStream();

      // Get the output stream of the connection.

      DataOutputStream os = sc.openDataOutputStream();

      // Read the input data.

      String result = is.readUTF();

      // Echo the data back to the sender.

      os.writeUTF(result);

      // Close everything.

      is.close();

      os.close();

      sc.close();

      scn.close();

      ..

      SocketConnection的使用也是非常簡(jiǎn)單,通過(guò)Connector的open方法我們可以得到一個(gè)SocketConnection的實(shí)例。



      SocketConnection sc = (SocketConnection)

      Connector.open("socket://host.com:79");

      sc.setSocketOption(SocketConnection.LINGER, 5);

      InputStream is = sc.openInputStream();

      OutputStream os = sc.openOutputStream();

      os.write("\r\n".getBytes());

      int ch = 0;

      while(ch != -1) {

       ch = is.read();

      }

      is.close();

      os.close();

      sc.close();

      其實(shí)我們?cè)谟胹ocket編寫(xiě)程序的時(shí)候無(wú)非遵循這樣的一種規(guī)則:服務(wù)器端建立監(jiān)聽(tīng)端口等待連接,客戶端通過(guò)open()方法與服務(wù)器端建立連接,兩端通過(guò)建立的socket傳輸數(shù)據(jù),關(guān)閉連接。

      下圖是我在運(yùn)行WTK中NetworkDemo的時(shí)候的截圖!代碼也一并發(fā)表出來(lái)。

      J2ME中使用Socket開(kāi)發(fā)聯(lián)網(wǎng)程序(1)(圖一)

      在J2ME中基于UDP協(xié)議編程一文中介紹了如何使用Datagram和DatagramConnection來(lái)開(kāi)發(fā)應(yīng)用程序,本文將主要講述在MIDP2.0中使用ServerSocketConnection和SocketConnection來(lái)開(kāi)發(fā)聯(lián)網(wǎng)應(yīng)用程序。TCP協(xié)議是可以保證傳輸?shù)馁|(zhì)量的,這也是他和UDP的一大區(qū)別。由于以上談到的四個(gè)類都屬于GCF,他們?cè)诔绦蚓帉?xiě)方面也非常相似,通常我們?cè)赟erver端的某個(gè)端口監(jiān)聽(tīng),當(dāng)客戶端連接服務(wù)器的時(shí)候,則可以得到一個(gè)SocketConnection的實(shí)例。通過(guò)兩端的SocketConnection則可以實(shí)現(xiàn)C/S結(jié)構(gòu)的通信了。

      首先看一下,ServerSocketConnection類,它的一個(gè)非常重要的方法就是acceptAndOpen()方法,這個(gè)方法返回一個(gè)SocketConnection實(shí)例,從而使得客戶端和服務(wù)器端可以通過(guò)socket通信了。典型的代碼如下:

      // Create the server listening socket for port 1234

      ServerSocketConnection scn = (ServerSocketConnection)

      Connector.open("socket://:1234");

      // Wait for a connection.

      SocketConnection sc = (SocketConnection) scn.acceptAndOpen();

      // Set application specific hints on the socket.

      sc.setSocketOption(DELAY, 0);

      sc.setSocketOption(LINGER, 0);

      sc.setSocketOption(KEEPALIVE, 0);

      sc.setSocketOption(RCVBUF, 128);

      sc.setSocketOption(SNDBUF, 128);

      // Get the input stream of the connection.

      DataInputStream is = sc.openDataInputStream();

      // Get the output stream of the connection.

      DataOutputStream os = sc.openDataOutputStream();

      // Read the input data.

      String result = is.readUTF();

      // Echo the data back to the sender.

      os.writeUTF(result);

      // Close everything.

      is.close();

      os.close();

      sc.close();

      scn.close();

      ..

      SocketConnection的使用也是非常簡(jiǎn)單,通過(guò)Connector的open方法我們可以得到一個(gè)SocketConnection的實(shí)例。



      SocketConnection sc = (SocketConnection)

      Connector.open("socket://host.com:79");

      sc.setSocketOption(SocketConnection.LINGER, 5);

      InputStream is = sc.openInputStream();

      OutputStream os = sc.openOutputStream();

      os.write("\r\n".getBytes());

      int ch = 0;

      while(ch != -1) {

       ch = is.read();

      }

      is.close();

      os.close();

      sc.close();

      其實(shí)我們?cè)谟胹ocket編寫(xiě)程序的時(shí)候無(wú)非遵循這樣的一種規(guī)則:服務(wù)器端建立監(jiān)聽(tīng)端口等待連接,客戶端通過(guò)open()方法與服務(wù)器端建立連接,兩端通過(guò)建立的socket傳輸數(shù)據(jù),關(guān)閉連接。

      下圖是我在運(yùn)行WTK中NetworkDemo的時(shí)候的截圖!代碼也一并發(fā)表出來(lái)。

      J2ME中使用Socket開(kāi)發(fā)聯(lián)網(wǎng)程序(1)(圖一)   

      分享:J2ME程序打包發(fā)布小技巧
      在J2ME程序開(kāi)發(fā)完成以后,需要將程序打包成jad和jar文件,這個(gè)操作可以使用IDE提供的向?qū)Щ蛘呤荳TK中的菜單等方式來(lái)完成,為了保證你的程序可以順利的在手機(jī)中運(yùn)行,需要注意如下一些

      來(lái)源:模板無(wú)憂//所屬分類:JSP教程/更新時(shí)間:2008-08-22
      相關(guān)JSP教程