-----------
android培训、java培训、java学习型技术博客、期待与您交流! ------------
Java中提供了一个DatagramSocket类进行UDP数据传输,建立UDP传输的步骤如下:
1、建立发送端(接收端)的DatagramDocket对象;
2、建立封装发送数据(接收数据)的数据包DatagramPacket对象;
3、调用DatagramSocket的send()方法发送数据(调用DatagramSocket的receive()方法发送数据);
4、关闭Socket。
注意:发送端、接收端是两个独立的运行程序,但是它们的建立步骤是相似的。
代码示例:
发送端代码:
import java.net.*;
public class UDPSend{
public static void main(String[] args)throws Exception{
//1、创建UDP服务
DatagramSocket ds=new DatagramSocket();
//2、将要发送的数据封装进DatagramPacket
byte[] buf="发送端的数据".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,
InetAddress.getByName("192.168.1.100"),10000);
//此处的IP地址是本机地址,仅用于演示。
//3、发送数据
ds.send(dp);
//4、关闭Socket
ds.close();
}
}
接收端代码:
import java.net.*;
public class UDPReceive{
public static void main(String[] args)throws Exception{
//1、创建UDP服务;
//构造此对象时需要指定端口号,且该端口号要与发送端指定的相同
DatagramSocket ds=new DatagramSocket(10000);
//2、创建DatagramPacket对象,用于接收数据
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//3、接收数据
ds.receive(dp);
String address=dp.getAddress().getHostAddress();
int port=dp.getPort();
byte[] data=dp.getData();
System.out.println("AddressOfSend:"+address);
System.out.println("PortOfSend:"+port);
System.out.println(new String(data,0,dp.getLength()));
//4、关闭Socket
ds.close();
}
}
注意:上述代码可能抛SocketException、IOException等异常,为了展示UDP传输的基本用法未对这些异常进行处理,实际编程时需要对它们进行处理。