预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
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[