1、UDP协议全称是用户数据报协议 ,在网络中它与TCP协议同样用于处理数据包,是一种无链接的协议。html
一、UDP是一个无链接协议,传输数据以前源端和终端不创建链接;java
二、不维护链接状态,包括收发状态等,所以一台服务机可同时向多个客户机传输相同的消息;android
三、UDP信息包的标题很短,8个字节,对于TCP的20个字节信息包的额外开销很小;算法
四、吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制;编程
五、不保证可靠交付;数组
六、UDP是面向报文的。网络
2、UDP的代码编程须要用到DatagramSocket类,Java使用DatagramSocket表明UDP协议的Socket,先了解一下如何使用这个类。app
server服务端(接收数据方)建立步骤eclipse
一、生成DatagramSocket对象,参数为端口号socket
1 |
|
二、byte数组用来接收数据
1 |
|
三、DatagramPackage以包形式装载byte数组
1 |
|
四、使用DatagramPacket的receive方法接收发送方所发送的数据,是一个阻塞的方法
1 |
|
五、接收到的数据转变化成可读字符串
1 |
|
client客户端(发送数据方)建立步骤
一、生成DatagramSocket对象,参数为端口号
1 |
|
二、建立一个InetAddress对象,用于肯定server客户端(数据接收方),参数为IP地址,如个人IP地址为192.168.1.103
1 |
|
三、须要发送的数据转化为byte数组
1 2 |
|
四、生成一个DatagramPacket对象,包含须要发送的byte数组,byte数组长度,已设置IP地址的serverAddress,和服务端一致的端口号(这里是8888)
1 |
|
五、发送数据,调用DatagramSocket对象的send方法
1 |
|
3、代码demo演示
server服务端,能够直接运行在eclipse便可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
若屡次运行会提示错误:Address already in use: Cannot bind,关掉以前开启的便可。
Android客户端代码demo演示,须要注意的是端口号是与服务端一致的,IP地址是服务端的IP地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
在AndroidManifest.xml添加权限和注册
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
这样便可跑起demo作测试了。先运行服务端,再点击发送4次,服务端的log以下:
参考博客:
http://www.cnblogs.com/lee0oo0/archive/2012/04/04/2431907.html
http://wang09si.blog.163.com/blog/static/170171804201303004343304/
分类: android