预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《J2ME程序设计》之网络编程(二)UDP通信 /NUMPAGES5 UDP编程知识 UDP是什么? UDP是数据报,只负责传输信息,并不保证信息一定会被收到,TCP基于连接,UDP基于报文。 UDP通信开发流程: 1.服务器监听某个端口 2.客户端连接服务器某个端口 3.通过Datagram通信 服务器监听某个端口: javax.microedition.io.UDPDatagramConnection javax.microedition.io.Connector专门负责建立各种连接 open(“datagram://:端口”),返回UDPDatagramConnection UDPDatagramConnection可以获得服务器IP和端口 客户端连接服务器端 javax.microedition.io.Connector专门负责建立各种连接 open(“datagram://IP地址:端口”),返回UDPDatagramConnection UDPDatagramConnection重要方法: 1.newDatagram() 2.receive() 3.send() 【案例1】客户端与服务器端建立连接 ServerMIDlet1.java文件 importjavax.microedition.io.Connector; importjavax.microedition.io.UDPDatagramConnection; importjavax.microedition.midlet.MIDlet; importjavax.microedition.midlet.MIDletStateChangeException; publicclassServerMIDlet1extendsMIDlet{ protectedvoidstartApp()throwsMIDletStateChangeException{ try{ //监听端口 UDPDatagramConnectionudc= (UDPDatagramConnection)Connector.open("datagram://:9999"); //System.out.println("IP"+udc.getLocalAddress()); //System.out.println("端口"+udc.getLocalPort()); }catch(Exceptionex){ ex.printStackTrace(); } } } ClientMIDLet1.java文件 importjavax.microedition.io.Connector; importjavax.microedition.io.UDPDatagramConnection; importjavax.microedition.midlet.MIDlet; importjavax.microedition.midlet.MIDletStateChangeException; publicclassClientMIDlet1extendsMIDlet{ protectedvoidstartApp()throwsMIDletStateChangeException{ try{ //连接到服务器端 UDPDatagramConnectionudc= (UDPDatagramConnection)Connector.open("datagram://127.0.0.1:9999"); }catch(Exceptionex){ ex.printStackTrace(); } } } 【案例2】客户端连接服务器,在服务器显示客户端信息 ServerMIDlet2.java文件 importjavax.microedition.midlet.MIDletStateChangeException; publicclassServerMIDlet2extendsMIDlet{ privatefinalintMAX=255; protectedvoidstartApp()throwsMIDletStateChangeException{ try{ //监听端口 UDPDatagramConnectionudc= (UDPDatagramConnection)Connector.open("datagram://:9999"); //接受数据报 Datagramdg=udc.newDatagram(MAX); udc.receive(dg); byte[