通过UDP传输方式实现发送与接收消息(java语言)

文章目录

  • UDP特点
  • UDP发送端
    • 步骤
    • 代码示例
  • UDP接收端
    • 步骤
    • 代码
    • 效果

UDP特点

UDP(面向无连接):聊天,刷视频,视频共享
– 将数据及源和目的封装成数据包,不需要建立连接
– 每个数据报的大小限制在64k内
– 因无连接,是不可靠协议(不在会丢包)
– 不需要建立连接,速度快

UDP发送端

步骤

1、建立udp socke服务
2、提供数据,并将数据封装到数据包中
3、通过socket服务的发送功能,将数据包发出去
4、关闭资源

代码示例

class UdpSend{
	public static void main(String[] args)throws Exception{
		//1、DatagramSocket
		DatagramSocket ds = new DatagramSocket();
		//2、DatagramPacket
		byte[] data = "udp seng".getBytes();//字符串变成字节数组
		DatagramPacket dp = new DatagramPacket(data,data.length,InetAddress.getByName("ip地址"),10000);
		//3、发送send
		ds.send(dp);
		//4
		ds.close();	
	}
}

UDP接收端

步骤

1、建立udp socke服务,通常会监听一个端口,其实就是给这个接收应用程序定义一个数字标识
2、定义一个数据包,存储接收到的数据
3、receive方法,将接收到的数据存到2的数据包
4、通过数据包对象的特有功能,将不同数据取出,打印在控制台
5、close

代码

class UdpReceive{
	public static void main(String[] args)throws Exception{
		//1、建立端点
		DatagramSocket ds = new DatagramSocket(10000);
		//2、数据包
		while(true){
			byte[] buf = new byte[1024];
			DatagramPacket dp = new DatagramPacket(buf,buf.length);
			
			//3、receive
			ds.receive(dp);
			//4 获取dp.getAddress()返回的是一个inetAddress对象,再通过getHostAddress返回字符串
			String ip = dp.getAddress().getHostAddress();
			String data = new String(dp.getData(),0,dp.getLength());
			int port = dp.getPort();
			System.out.println("ip:"+ip+" "+"data:"+data+" "+"port:"+port);//ip:169.254.154.84 data:udp seng port:56977
		}
		
		//这里的port是系统随机给应用程序定义的端口号
		//5
		ds.close();	
	}
}

效果

接收端:在这里插入图片描述

你可能感兴趣的:(通过UDP传输方式实现发送与接收消息(java语言))