java利用udp實(shí)現(xiàn)發(fā)送數(shù)據(jù)
本文實(shí)例為大家分享了java利用udp實(shí)現(xiàn)發(fā)送數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
1.udp的特點(diǎn)
- 數(shù)據(jù)以包的形式發(fā)送數(shù)據(jù)
- udp是面向無連接的
- udp會(huì)丟失數(shù)據(jù),是一種不安全的連接
- udp的傳輸速度較快
2.發(fā)送端
package cn.uu710.SocketTest; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class Send1 { public static void main(String[] args) { try { DatagramSocket datagramSocket = new DatagramSocket(); String data = "這是張佑發(fā)送的消息!"; DatagramPacket datagramPacket = new DatagramPacket(data.getBytes(),data.getBytes().length,InetAddress.getLocalHost(),8088); //發(fā)送 System.out.println("正在準(zhǔn)備發(fā)送……"); datagramSocket.send(datagramPacket); System.out.println("已發(fā)送……"); datagramSocket.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
3.接收端
package cn.uu710.SocketTest; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; import com.sun.org.apache.bcel.internal.generic.NEW; public class receive1 { public static void main(String[] args) { try { DatagramSocket datagramSocket = new DatagramSocket(8088); byte[] b = new byte[1024]; DatagramPacket datagramPacket = new DatagramPacket(b,b.length); System.out.println("正在準(zhǔn)備接收……"); //未接收之前為阻塞狀態(tài) datagramSocket.receive(datagramPacket); System.out.println("接收內(nèi)容:"+new String(b,0,b.length)); System.out.println("已經(jīng)接收……"); datagramSocket.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
4. 運(yùn)行程序
先啟動(dòng)接收端,再運(yùn)行發(fā)送端
啟動(dòng)接收端后,程序并未停止,因?yàn)檫€未接收到消息
再啟動(dòng)發(fā)送端,此時(shí)接收端成功接收到消息,之后程序停止
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深入理解Java線程池從設(shè)計(jì)思想到源碼解讀
這篇文章主要介紹了深入理解Java線程池從設(shè)計(jì)思想到源碼解讀,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03淺談spring中用到的設(shè)計(jì)模式及應(yīng)用場(chǎng)景
下面小編就為大家?guī)硪黄獪\談spring中用到的設(shè)計(jì)模式及應(yīng)用場(chǎng)景。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08Java讀取文件的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了Java讀取文件的簡(jiǎn)單實(shí)現(xiàn)方法,通過一個(gè)讀取txt格式的log文件為例,詳細(xì)的講述了Java讀取文件的方法及原理,需要的朋友可以參考下2014-09-09SpringBoot3.X配置OAuth的代碼實(shí)踐
在進(jìn)行Java后端技術(shù)框架版本升級(jí)時(shí),特別是將SpringBoot從2.X升級(jí)到3.X,發(fā)現(xiàn)對(duì)OAuth的配置有大幅變更,新版本中刪除了多個(gè)常用配置類,本文給大家介紹SpringBoot3.X配置OAuth的相關(guān)知識(shí),感興趣的朋友一起看看吧2024-09-09分享Spring?Cloud?OpenFeign?的五個(gè)優(yōu)化技巧
這篇文章主要分享的是Spring?Cloud?OpenFeign?的五個(gè)優(yōu)化技巧,OpenFeign?是?Spring?官方推出的一種聲明式服務(wù)調(diào)用和負(fù)載均衡組件,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-05-05Java 實(shí)現(xiàn)常見的非對(duì)稱加密算法
這篇文章主要介紹了Java 實(shí)現(xiàn)常見的非對(duì)稱加密算法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11