不爱生姜不吃醋⭐️
如果本文有什么错误的话欢迎在评论区中指正
与其明天开始,不如现在行动!
文章目录
- 🌴前言
- 🌴一、TCP/IP参考模型
- 🌴二、UDP协议
- 1. 概念
- 2. 发送数据
- 3.接收数据
- 5.运行结果
- 🌴总结
🌴前言
本文内容是关于UDP的相关知识,包括UDP概念介绍,接收数据和发送数据的Java代码编写和实现。
🌴一、TCP/IP参考模型
🌴二、UDP协议
1. 概念
用户数据协议(User Datagram Protocol)。
UDP是面向无连接通信协议,速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据。(不检查链接,直接发送数据)
应用场景:网络会议、语音通话、在线视频
2. 发送数据
发送数据的过程可以想象成发快递:
- 找快递公司(创建发送端的
DatagramSocket
对象) - 打包礼物(数据打包
DatagramPacket
) - 快递公司发送包裹(发送数据)
- 付钱走人(释放资源)
Java代码实现:
public class SendMessageDemo {public static void main(String[] args) throws IOException {//创建发送端的DatagramSocket/** 细节:* 绑定端口,以后我们就是通过这个端口往外发送* 空参:所有可用的端口中随机一个进行使用* 有参:指定端口号进行绑定* */DatagramSocket ds = new DatagramSocket();//数据打包DatagramPacketString str = "你好呀!";byte[] bytes = str.getBytes();InetAddress address = InetAddress.getByName("127.0.0.1");int port = 10086;DatagramPacket dp = new DatagramPacket(bytes, bytes.length,address,port);//发送数据ds.send(dp);//释放资源ds.close();}
}
3.接收数据
接收数据的过程也可以想象成收快递:
- 找快递公司(创建接收端的
DatagramSocket
对象) - 接收快递(接收打包好的数据)
- 从快递中获得礼物(解析数据包)
- 签收走人(释放资源)
Java代码实现:
public class ReceiveMessageDemo {public static void main(String[] args) throws IOException {//创建接收端的DatagramSocket/** 细节:* 在接收的时候,一定要绑定端口* 而且绑定的端口一定要跟发送的端口保持一致* */DatagramSocket ds = new DatagramSocket(10086);//接收打包好的数据byte[] bytes = new byte[10086];DatagramPacket dp = new DatagramPacket(bytes,bytes.length);ds.receive(dp);//解析数据包byte[] data = dp.getData();int length = dp.getLength();InetAddress address = dp.getAddress();int port = dp.getPort();System.out.println("接收到数据:"+new String(data,0,length));System.out.println("该数据是从"+address+"这台电脑的"+port+"这个端口发出的!");//释放资源ds.close();}
}
注意:要先运行接受数据的代码,之后再运行发送数据的代码,因为接收数据的代码中ds.receive(dp)
是阻塞的,等待接收数据。
5.运行结果
🌴总结
文章中代码的编写使用的都是Java网络编程方面知识,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!