java 網路程式設計中 UDP 實現訊息傳送
阿新 • • 發佈:2021-09-05
編寫程式碼
1,接收端 UdpServerDemo01
package com.xiang.lesson03; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class UdpServerDemo01 { public static void main(String[] args) throws Exception { // 開放埠 ; DatagramSocket socket = new DatagramSocket(9999); // 接收資料 包 byte[] buffer = new byte[1024]; // 接收 DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length); // 阻塞/接收 socket.receive(packet); // 輸出 System.out.println(packet.getSocketAddress()); System.out.println(packet.getAddress().getCanonicalHostName()); System.out.println(new String(packet.getData(),0,packet.getLength())); // 關閉連線 socket.close(); /* 先啟動伺服器, 要啟動客戶端 */ } }
2,傳送端 UdpClientDemo01
package com.xiang.lesson03; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.nio.charset.StandardCharsets; //upd 不需要連線 伺服器; public class UdpClientDemo01 { public static void main(String[] args) throws Exception { // 1, 建立一個 包 ,或者socket ; 資料包 DatagramSocket socket = new DatagramSocket(); // 2,建個包; String msg="你好啊,伺服器"; // 傳送的人 InetAddress localhost = InetAddress.getByName("localhost"); int prot =9999; // 資料 ,資料的長度 起始,要傳送的人 ,埠號; DatagramPacket packet = new DatagramPacket(msg.getBytes(StandardCharsets.UTF_8),0,msg.getBytes(StandardCharsets.UTF_8).length,localhost,prot); // 3,傳送包; socket.send(packet); // 4,關閉流 socket.close(); } }