標籤:
實現功能:用戶端發送一個字串(可以為漢字),伺服器端接收並顯示
伺服器端程式:
package udpServer;import java.io.*;import java.net.*;/** * 服務端 * 1、建立服務+連接埠 * 2、準備接受容器 byte數組 * 3、把接收容器封裝成包 DatagramPacket * 4、接受資料 * 5、分析資料 */ public class server { public static void main(String[] args) throws IOException { //1.建立服務+連接埠 DatagramSocket server = new DatagramSocket(9999); //2.準備接受容器 byte[] container = new byte[1024]; //3.封裝成包 DatagramPacket(byte buf[], int length) DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受資料 (阻塞式接受) server.receive(packet); //5.分析資料 byte[] data = packet.getData(); System.out.println(new String(data, "utf-8")); //6.釋放資源 server.close(); } }
用戶端程式:
package udpClient;import java.io.*;import java.net.*;/** * 1、建立用戶端+連接埠 * 2、準備資料 位元組數組 * 3、給資料打包 並指定發送的目的地和連接埠 * 4、發送 * 5、釋放 * * 思考 : 發送有類型的資料 怎麼處理 如對象 數字 等等 */ public class client { public static void main(String[] args) throws IOException { //1.建立用戶端+連接埠 DatagramSocket client = new DatagramSocket(8888); //2.準備要發送的資料 位元組數組 String msg = "UDP編程"; byte[] data = msg.getBytes("utf-8"); //3.給資料打包 並指定發送的目的地和連接埠 DatagramPacket(byte buf[], int length, InetAddress address, int port) InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(data, data.length, address, 9999); //4.發送 client.send(packet); //5.釋放 client.close(); } }
java udp socket通訊(僅發送)