壽光網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)方案
需要了解TCP協(xié)議的,可以看往期文章
https://blog.csdn.net/weixin_43860634/article/details/133274701
TCP/IP參考模型
通過此圖,可以了解UDP所在哪一層級(jí)中
代碼案例
發(fā)送數(shù)據(jù)
package com.hidata.devops.paas.udp;import java.io.IOException;
import java.net.*;/*** @Description : UDP通信程序(發(fā)送數(shù)據(jù))* @Date: 2023-09-25 14:34*/
public class SendMessageDemo {public static void main(String[] args) throws IOException {//發(fā)送數(shù)據(jù)//1、創(chuàng)建DatagramSocket對(duì)象(快遞公司)DatagramSocket datagramSocket = new DatagramSocket();//2、打包數(shù)據(jù)String str = "你好";byte[] bytes = str.getBytes();InetAddress address = InetAddress.getByName("127.0.0.1");int port = 5000;DatagramPacket p = new DatagramPacket(bytes,bytes.length,address,port);//3、發(fā)送數(shù)據(jù)datagramSocket.send(p);//4、釋放資源datagramSocket.close();}
}
接收數(shù)據(jù)
package com.hidata.devops.paas.udp;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;/*** @Description : UDP通信程序(接收數(shù)據(jù))* @Date: 2023-09-25 14:34*/
public class ReceiveMessageDemo {public static void main(String[] args) throws IOException {//接收數(shù)據(jù)//1、創(chuàng)建DatagramSocket對(duì)象(快遞公司)DatagramSocket datagramSocket = new DatagramSocket(5000);//2、接收數(shù)據(jù)包byte[] bytes = new byte[1024];DatagramPacket p = new DatagramPacket(bytes,bytes.length);System.out.println("111");datagramSocket.receive(p);System.out.println("222");//3、解析數(shù)據(jù)包byte[] data = p.getData();int len = p.getLength();InetAddress address = p.getAddress();int port = p.getPort();System.out.println("接收到的數(shù)據(jù):" + new String(data,0,len));System.out.println("該數(shù)據(jù)是從" + address + "這臺(tái)電腦中的 " + port + "這個(gè)端口發(fā)出的");//4、釋放資源datagramSocket.close();}
}
運(yùn)行效果
111
222
接收到的數(shù)據(jù):你好
該數(shù)據(jù)是從/127.0.0.1這臺(tái)電腦中的 57057這個(gè)端口發(fā)出的Process finished with exit code 0
額外補(bǔ)充
- 1、UDP是面向無(wú)連接通信協(xié)議(通俗一點(diǎn)講,就是不管是否已連接成功,直接發(fā)送數(shù)據(jù)),該特性正好與TCP協(xié)議相反,TCP協(xié)議是面向連接的通信協(xié)議,要先確保連接成功,才會(huì)發(fā)數(shù)據(jù)
- 2、UDP協(xié)議傳輸?shù)?速度快,有大小限制一次最多發(fā)送64k,數(shù)據(jù)不安全,易丟失
- 3、UDP適用場(chǎng)景:語(yǔ)音通話,網(wǎng)絡(luò)會(huì)議,視頻通話等領(lǐng)域,對(duì)數(shù)據(jù)部分丟失,要求不是嚴(yán)格