java利用udp實現(xiàn)發(fā)送數(shù)據(jù)
本文實例為大家分享了java利用udp實現(xiàn)發(fā)送數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
1.udp的特點
- 數(shù)據(jù)以包的形式發(fā)送數(shù)據(jù)
- udp是面向無連接的
- udp會丟失數(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. 運行程序
先啟動接收端,再運行發(fā)送端
啟動接收端后,程序并未停止,因為還未接收到消息

再啟動發(fā)送端,此時接收端成功接收到消息,之后程序停止

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot使用GuavaCache做簡單緩存處理的方法
這篇文章主要介紹了springboot使用GuavaCache做簡單緩存處理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
Spring boot創(chuàng)建自定義starter的完整步驟
這篇文章主要給大家介紹了關(guān)于Spring boot創(chuàng)建自定義starter的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
JavaWeb實戰(zhàn)之用Servlet+JDBC實現(xiàn)用戶登錄與注冊
這篇文章主要介紹了JavaWeb實戰(zhàn)之用Servlet+JDBC實現(xiàn)用戶登錄與注冊,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04
SpringMVC @RequestBody屬性名大寫字母注入失敗的解決
這篇文章主要介紹了SpringMVC @RequestBody屬性名大寫字母注入失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04

