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工具,完全可以。
写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工具,完全可以。