欢迎来到天天文库
浏览记录
ID:4153359
大小:301.97 KB
页数:20页
时间:2017-11-29
《郭克华j2me移动开发实战教学视频讲义19》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、郭克华J2ME移动开发实战教学视频讲义第19章UDP编程郭克华所有作品由ChinaSEI独家发布。网址为:http://www.chinasei.com对应视频可在http://www.chinasei.com上下载。本讲义属于郭克华团队网友整理,比视频略有扩充,如果有文字等小错,请多包涵。在不盈利的情况下,欢迎免费传播。版权所有.郭克华本讲义经过修正、扩充,连同视频,由清华大学出版社出版。详细可查询http://www.china-pub.com/49067,http://product.dangdang.com/
2、product.aspx?product_id=20742080第19章UDP编程【本章导读语】前一章中,在网络编程框架内,我们讲解了TCP编程。TCP最重要的特点是面向连接,也就是说必须在服务器端和客户端连接上之后才能通信,并且由SocketConnection来进行通信,它的安全性比较高。本章我们将讲解UDP编程,UDP编程是面向非连接的,UDP是数据报,只负责传输信息,并不能保证信息一定会被收到,虽然安全性不如TCP,但是性能较好;TCP基于连接,UDP基于报文,具体大家可以参考计算机网络知识。本章主要包括基于
3、UDP协议的MIDlet客户端和服务器端之间的通信,本章用到的网络编程API主要是:【19-1】利用UDP实现双向聊天系统〖实例需求〗注意,UDP是面向无连接的,但并不是没有客户端和服务器端的其别。只是说,服务器端运行之后,并不一定要等待客户端的连接才能通信,客户端可以直接和服务器端通信。本节中我们开发一个聊天应用最基本的程序:客户端和服务器通信。在本节中,服务器和客户端界面相同,都可以给对方发送信息,也能够自动收到对方发过来的信息。本节的效果如图19-1所示:J2ME移动开发实战教程图19-1程序效果服务器端和客户
4、端都有一个文本框,输入聊天信息。输入聊天信息之后,点击“发送”,就能够将信息发送给对方,对方也能够自动收到之后显示。很显然,这个程序在TCP编程中也讲解过,看完本节之后,请读者比较两者之间的区别。〖开发过程〗第一步:了解基本知识。在聊天程序中,同样,各个聊天的界面叫做客户端,客户端之间如果要相互聊天,则可以将信息先发送到服务器端,然后由服务器端转发。因此,客户端先要连接到服务器。客户端连接到服务器的IP地址和端口。在服务器端,必须要:监听某个端口。在客户端,必须要:连接服务器的某个端口,这点没有太大区别。在UDP编程
5、中,服务器端怎么监听端口呢?UDP编程中,端口的监听是由javax.microedition.io.UDPDatagramConnection进行管理的,从文档中我们可以看到,UDPDatagramConnection也是javax.microedition.io.Connection的子接口。UDPDatagramConnection是个接口,自然不能直接实例化,同样,利用javax.microedition.io.Connector中的open函数来打开端口:该函数返回一个Connection,在J2ME中,UD
6、PDatagramConnection是Connection的子接口,因此,也可以强制转换为UDPDatagramConnection。该函数传入一个连接字符串,返回一个Connection对象。再UDP通信的情况下,对于服务器端来说,连接字符串的格式是:datagram://:端口号如:datagram://:9999,表示服务器端监听9999端口。当然,该函数的返回值需要强制转换为javax.microedition.io.UDPDatagramConnection类型。例如,如下代码就可以监听服务器上的9999
7、端口,并返回连接对象udc。UDPDatagramConnectionudc=(UDPDatagramConnection)Connector.open("datagram://:9999");接下来的问题是,客户端怎样连接到服务器端的某个端口呢?客户端连接到服务器端的某个端口也是由javax.microedition.io.UDPDatagramConnection进行管理的,也可以利用javax.microedition.io.Connector中的open函数来获得连接。open函数传入一个连接字符串,返回一个
8、Connection对象。对于客户端来说,连接字符串的格式是:datagram://IP:端口号如:datagram://127.0.0.1:9999,表示连接到服务器127.0.0.1的9999端口。ñ2ñ第19章UDP编程当然,该函数的返回值也需要强制转换为javax.microedition.io.UDPDatagramConnectio
此文档下载收益归作者所有