ch34 网络编程(二)UDP通信.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:5 大小:45KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

ch34 网络编程(二)UDP通信.doc

ch34网络编程(二)UDP通信.doc

预览

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

15 金币

下载此文档

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

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

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

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

《J2ME程序设计》之网络编程(二)UDP通信/NUMPAGES5UDP编程知识UDP是什么?UDP是数据报,只负责传输信息,并不保证信息一定会被收到,TCP基于连接,UDP基于报文。UDP通信开发流程:1.服务器监听某个端口2.客户端连接服务器某个端口3.通过Datagram通信服务器监听某个端口:javax.microedition.io.UDPDatagramConnectionjavax.microedition.io.Connector专门负责建立各种连接open(“datagram://:端口”),返回UDPDatagramConnectionUDPDatagramConnection可以获得服务器IP和端口客户端连接服务器端javax.microedition.io.Connector专门负责建立各种连接open(“datagram://IP地址:端口”),返回UDPDatagramConnectionUDPDatagramConnection重要方法: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[