Java-網路程式設計-UDP
阿新 • • 發佈:2020-10-09
1、send方
package cn.bruce.internetkeyboard; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Scanner; /* * 實現UDP協議傳送端: * 實現封裝資料的類:java.net.DatagramPacket 將你的資料包裝 * 實現封裝傳輸的類:java.net.DatagramSocket 將資料包發出去 * 實現步驟: * 1、建立DatagramPacket物件,封裝資料,接受的地址和埠 * 2、建立DatagramSocket,並呼叫send方法,傳送資料報包 * 3、關閉資源*/ public class UDPSEND { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); InetAddress inet = InetAddress.getByName("127.0.0.1");// 封裝接收IP DatagramSocket DS = new DatagramSocket(); while (true) { byte[] data = sc.nextLine().getBytes();//封裝資料 // 封裝資料報包 DatagramPacket dPacket = new DatagramPacket(data, data.length, inet, 6033); // 傳送資料 DS.send(dPacket); } // 關閉資源 // DS.close(); } }
2、receive方
package cn.bruce.internetkeyboard; import java.io.IOException; import java.net.DatagramPacket;import java.net.DatagramSocket; import java.net.SocketException; public class UDPRECEIVE { public static void main(String[] args) throws IOException { DatagramSocket datagramSocket = new DatagramSocket(6033); byte[] data = new byte[1024]; while (true) { DatagramPacket dPacket = new DatagramPacket(data, data.length); datagramSocket.receive(dPacket); System.out.println(new String(data, 0, dPacket.getLength())); } // 長度使用方法來獲取 // datagramSocket.close(); } }
先執行receive,進行執行緒等待,再執行send,進行文字輸入