java udp socket通訊(僅發送)

實現功能:客戶端發送一個字符串(能夠爲漢字),服務器端接收並顯示java

服務器端程序:編程

package udpServer;

import java.io.*;
import java.net.*;

/** 
 * 服務端 
 * 一、建立服務+端口 
 * 二、準備接受容器  byte數組 
 * 三、把接收容器封裝成包 DatagramPacket 
 * 四、接受數據 
 * 五、分析數據 
 */  
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.*;

/** 
 * 一、建立客戶端+端口 
 * 二、準備數據 字節數組 
 * 三、給數據打包 並指定發送的目的地和端口 
 * 四、發送 
 * 五、釋放 
 *  
 * 思考 : 發送有類型的數據  怎麼處理 如對象  數字 等等 
 */  
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();  
    }  

}
相關文章
相關標籤/搜索