UDP传输协议是一种常见的传输协议,但是在实际中,运用的很少,一般都是使用TCP协议,因为TCP传输协议是安全可靠的传输协议,可以保证数据的完整性,但是对于传输效率而言没有UDP高。而UDP因为不需要保证数据传输可靠性,牺牲了可靠性,反而传输效率会高很多。对于有些场景,比如频繁上报的心跳数据,或者车辆GPS数据,因为丢失一条或者多条,对于整个系统的影响很小,或者说没有,这样的场景,在能够保证数据传输效率的前提下,使用UDP可能更合适。
Java中UDP传输协议编程,提供了原生的API,可以很方便的通过两个主要的类DatagramSocket和DatagramPacket来实现一个简单的示例,下面分别给出一个数据发送和数据接收的程序代码。
package com.xxx.huali.hualitest;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPSendTest {
public static void main(String[] args) {
DatagramSocket socket = null;
try {
socket = new DatagramSocket(10000);
byte[] data = "hello,udp\n".getBytes();
int port = 8080;
InetAddress address = InetAddress.getByName("192.168.253.101");
DatagramPacket packet = new DatagramP