DatagramSocket
DataPacket(数据报包) - import java.net.*;
- /**
- *通过UDP传输方式,将一段文字发送出去
- *1.建立UDP socket服务
- *2.提供数据,并将数据封装到数据包中
- *3.通过socket服务的发送功能,发送数据包
- *4.关闭资源。
- */
- public class UDPSend{
- public static void main(String[] args) throws Exception {
- //创建UDP服务,通过DatagramSocket对象
- DatagramSocket ds= new DatagramSocket();
- //提供数据,并将数据封装到数据包中
- byte[] data="UDP COME".getBytes();
- DatagramPacket dp=new DatagramPacket(data,data.length,InetAddress.getByName("127.0.0.1"),10001);
- //通过socket服务的发送功能,发送数据包
- ds.send(dp);
- //关闭资源
- ds.close();
- }
- }
复制代码- import java.net.*;
- /**
- * 定义一个应用程序,用于接受UDP协议传输的数据并处理
- *1.定义UDPSocket服务,通常监听一个端口
- *2.定义一个数据包,存储接收到的字节数据。用数据包对象提取字节数据中的信息
- *3.通过socket服务的receive方法将收到的数据存入已定义好的数据包中
- *4.通过数据包对象的特有功能,将这些不同的数据取出来,打印在控制台。
- *5.关闭资源。
- */
- public class UDPReceive {
- public static void main(String[] args) throws Exception {
- //创建UDPSocket,建立端点,监听10000端口
- DatagramSocket ds= new DatagramSocket(10001);
- //定义数据包,存储数据
- byte []buf=new byte[1024];
- DatagramPacket dp=new DatagramPacket(buf,buf.length);
- //阻塞式方法
- ds.receive(dp);
- //获取发送端的IP
- String ip=dp.getAddress().getHostAddress();
- //获取传输的数据
- String data=new String(dp.getData(),0,dp.getLength());
- //获取的发送端的数字标识
- int port=dp.getPort();
- System.out.println(ip+"::"+data+"::"+port);
- ds.close();
- }
- }
复制代码
|