1. 程式人生 > 程式設計 >java利用udp實現傳送資料

java利用udp實現傳送資料

本文例項為大家分享了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. 執行程式

先啟動接收端,再執行傳送端
啟動接收端後,程式並未停止,因為還未接收到訊息

java利用udp實現傳送資料

再啟動傳送端,此時接收端成功接收到訊息,之後程式停止

java利用udp實現傳送資料

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。