J2ME---网络开发:

    做了几次小练习:下面开始做网络编程方面的准备
写j2me的网络程序,可能与PC上有些区别:
1,使用的库:
    j2me要使用javax.microedition.io.*;
    PC要上使用java.net.*;
2,所使用的类不同:
  PC:   Server side:
import java.io.*;
import java.net.*;

  try
  {
   DatagramSocket ds = new DatagramSocket(10000);
   while(true)
   {
    byte [] inbuf = new byte[1024];
    DatagramPacket inpacket = new DatagramPacket(inbuf, inbuf.length);
    ds.receive(inpacket);
    //String sout = new String(inbuf, 0, 0, inpacket.getLength());
    String sout = new String(inbuf, inpacket.getLength());
    System.out.println(sout);
   }
  }
  catch(SocketException e)
  {
   System.out.println("can't open network");
  }
  catch(IOException e)
  {
      System.out.println("can't read data");
  }

  J2ME:Client Side:
        import javax.microedition.io.*;
        DatagramConnection dc = null;
        String destAddr = "datagram://192.168.1.100:10000";
        try
        {
        String sout = "MIDlet Test String";
        byte buf[] = sout.getBytes();
        dc = (DatagramConnection)Connector.open(destAddr);
        Datagram gram = dc.newDatagram(buf, buf.length, destAddr);
        dc.send(gram);
        dc.close();
        }
        catch(Exception e)
        {
         System.out.println("io error!");
        }

但是问题仍出现:
1,在WTK的通用模拟器上,数据包无法发送到PC的服务器上,而在手机上可以正确发送。
   于是想找一个nokia自己的模拟器来用。
   到Nokia网站上,竟然找不到传说中的Nokia Developer's suite 3.0 for j2me
   再辗转到j2medev 的网站,果然有下载。
   安装NDS3.0竟提示我没有jre,这不是扯淡嘛,明明有的,都装N个java工具,都正常找到,没办法换一台机器,依然如旧,
   再换一台机器,仍是这个问题,算了不管他,装上才说,装上好,手工在path里加上了java的那一堆path(jdk/jre),运行
   NDS,提示:Deployed tools initialize failed.不管他,先去eclipse上加载NDS3的模拟器。加载成功,测试一个MIDlet网络
   客户端程序,成功发出数据包。目的达到,没有兴趣再去研它NDS3与eclipse的兼容性。java在我眼里就是一堆牵强的组合,
   虽然说一处编译,四处运行,但什么问题也都可能发生。
2,每次网络发送时,都有安全提示。据经验来看,应该是数字签名,证书之类的原因
 
   使用WTK的sign工具,完全可以。
posted @ 2007-10-22 11:07  岁月无声  阅读(258)  评论(0编辑  收藏  举报