Socket网络--UDP
UDP传输
UDP传输发送端与接收端的建立
创建UDP传输的发送端:
1.建立UDP的socket服务
DatagramSocket ds= new DatagramSocket();//DatagramSocket是用来发送和接收数据报包的套接字
数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一
台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。在 DatagramSocket 上总是启
用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket
绑定到一个更加具体的地址时广播包也可以被接收。
2.将要发送的数据封装到数据包
String str = "";
byte[] buf = str.getBytes();
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("ip地址"),端口);
//数据报包,数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。
从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。
3.通过UDP的socket服务将数据包发送出去
ds.send(dp);
4.关闭socket服务
ds.close();
UDP接收端
1.建立UDP socket服务
DatagramSocket ds = new DatagramSocket(端口); //注意:在建立UDP接收端的时候一定要绑定发送端端口
2.创建用于存储接收到的数据的数据包
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
3.使用socket服务的receive方法接收数据包
ds.receive(dp);
4.解析数据包中的数据
String ip = dp.getInetAddress().getHostAddress();
int port = dp.getPort();
String text = new String(dp.getData(),0,dp.getLength());
5.关闭资源
ds.close();

浙公网安备 33010602011771号