JAVA UDP協議實現例子
阿新 • • 發佈:2020-10-25
JAVA提供了DatagramSocket類作為基於UDP協議的Socket
傳送資料
import java.io.IOException; import java.net.*; public class SendDemo { public static void main(String[] args) throws IOException { //DatagramSocket() //構造資料報套接字並將其繫結到本地主機上的任何可用埠。 DatagramSocket da = new DatagramSocket(); //DatagramPacket(byte[] buf, int length, InetAddress address, int port) //構造用於傳送長度的分組的資料報包 length指定主機上到指定的埠號。 byte[] bye="爺來辣".getBytes(); int len=bye.length; InetAddress adress = InetAddress.getByName("192.168.1.255"); int port=10086; DatagramPacket dp=new DatagramPacket(bye,len,adress,port); //public void send(DatagramPacket p) //從此套接字傳送資料報包 da.send(dp); //close() //關閉此資料報套接字。 da.close(); } }
接受資料
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class ReciveDemo { public static void main(String[] args) throws IOException { //DatagramSocket(int port) //構造資料報套接字並將其繫結到本地主機上的指定埠。 DatagramSocket d=new DatagramSocket(10086); //建立資料包,接收資料 // DatagramPacket(byte[] buf, int length) // 構造一個 DatagramPacket用於接收長度的資料包 length byte[] bye=new byte[1024]; DatagramPacket dp = new DatagramPacket(bye,bye.length); //接受資料 d.receive(dp); //解析資料並輸出資料 //getData() //返回資料緩衝區。 byte[] datas=dp.getData(); String temp=new String(datas); System.out.println(temp); } }