|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。程序只管今朝的无线收集不敷幻想,手机联网仍是给我们开辟职员不小的震动的。究竟这真的
是件奇妙的事变,不是吗?本文将报告怎样使用J2ME平台中的通用联网框架开辟联网的使用
程序。
起首,必需申明一点:MIDP中划定,任何挪动信息设备都必需供应经由过程http协定的支
持,而像其他的通讯体例比方socket是设备相干的。有些手时机撑持,有些则不撑持。这里只
也许的申明一下http协定相干的内容,假如不懂得这个方面的常识请参考http协定。在
javax.microedition.io内里是大批的接口,只要一个connector类,固然在midp2.0内里增加了
对push手艺的撑持,这个留做今后讲。connector类供应的最主要的办法是open()办法,它的
前往值为Connection,你能够对他举行转换失掉你必要的范例,好比我们以http协定会见服务
器。
voidpostViaHttpConnection(Stringurl)throwsIOException{
HttpConnectionc=null;
InputStreamis=null;
OutputStreamos=null;
intrc;
try{
c=(HttpConnection)Connector.open(url);
//Settherequestmethodandheaders
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty("If-Modified-Since","29Oct199919:43:31GMT");
c.setRequestProperty("User-Agent","Profile/MIDP-2.0Configuration/CLDC-1.0");
c.setRequestProperty("Content-Language","en-US");
//Gettingtheoutputstreammayflushtheheaders
os=c.openOutputStream();
os.write("LISTgames
".getBytes());
os.flush();//Optional,getResponseCodewillflush
//Gettingtheresponsecodewillopentheconnection,
//sendtherequest,andreadtheHTTPresponseheaders.
//Theheadersarestoreduntilrequested.
rc=c.getResponseCode();
if(rc!=HttpConnection.HTTP_OK){
thrownewIOException("HTTPresponsecode:"+rc);
}
is=c.openInputStream();
//GettheContentType
Stringtype=c.getType();
processType(type);
//Getthelengthandprocessthedata
intlen=(int)c.getLength();
if(len>0){
intactual=0;
intbytesread=0;
byte[]data=newbyte[len];
while((bytesread!=len)&&(actual!=-1)){
actual=is.read(data,bytesread,len-bytesread);
bytesread+=actual;
}
process(data);
}else{
intch;
while((ch=is.read())!=-1){
process((byte)ch);
}
}
}catch(ClassCastExceptione){
thrownewIllegalArgumentException("NotanHTTPURL");
}finally{
if(is!=null)
is.close();
if(os!=null)
os.close();
if(c!=null)
c.close();
}
}
下面的代码是我取自APIdoc(倡议多读一下apidoc)。
上面依据本人的履历申明一下联网中对照主要的成绩:
我们应当分明这是怎样事情的,手机发送哀求经由过程无线收集传输到运营商的WAP网关,
WAP网关将哀求转发到web服务器,服务器能够用cgi,asp,servlet/jsp等构建。服务器处置后
会把呼应转发到WAP网关,WAP网关再把它发送得手机上。WAP网关对我们开辟职员来讲是
通明的我们不必管它。
假如在你的联网程序上看不到Thread,Runnable如许的字眼,那末你的程序是不克不及运转
的。由于思索到收集的要素,为了不操纵梗塞。你必需把联网举措放到别的一个线程往运
行,而不克不及在主线程运转。最好当联网的时分供应给用户一个守候的界面好比作一个动画界
面。我上面供应的例子中没有效,由于我想把这个独自出来今后谈。
一般联网的使用程序的界面是对照多的,最好我们利用MVC的形式来完成界面的导航。
思索好你想怎样传送你数据,这一点长短常主要的。你能够用GET办法也能够利用POST办法,
保举后者。由于get办法只能是经由过程URL编码的传输。而POST加倍天真,共同
DataInputStream、DataOutputStream来利用更是便利。必需分明我们怎样承受数据是跟数
据怎样发送过去相干的,比方在client端writeUTF(message);writeInt(4);writeBoolean
(true),那末承受就应当readUTF();readInt();readBoolean();假如发送过去数据长度是可用
的,那末我们能够创建一个得当的数组来承受,假如不成用我们就要一个得当容量的数组来接
受。
联网的时分必定依照以下的流程做
1、创建毗连,设置传输体例保举POST,设置办法头
2、翻开输入流,传输数据给服务器
3、判别响应的形态码,进进分歧流程把持,注重毛病处置。假如OK则入手下手承受数据
4、封闭毗连和流
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发 |
|