java利用udp實現傳送資料
阿新 • • 發佈:2020-07-29
本文例項為大家分享了java利用udp實現傳送資料的具體程式碼,供大家參考,具體內容如下
1.udp的特點
- 資料以包的形式傳送資料
- udp是面向無連線的
- udp會丟失資料,是一種不安全的連線
- udp的傳輸速度較快
2.傳送端
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 = "這是張佑傳送的訊息!"; DatagramPacket datagramPacket = new DatagramPacket(data.getBytes(),data.getBytes().length,InetAddress.getLocalHost(),8088); //傳送 System.out.println("正在準備傳送……"); datagramSocket.send(datagramPacket); System.out.println("已傳送……"); 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("正在準備接收……"); //未接收之前為阻塞狀態 datagramSocket.receive(datagramPacket); System.out.println("接收內容:"+new String(b,b.length)); System.out.println("已經接收……"); datagramSocket.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
4. 執行程式
先啟動接收端,再執行傳送端
啟動接收端後,程式並未停止,因為還未接收到訊息
再啟動傳送端,此時接收端成功接收到訊息,之後程式停止
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。