JAVA中Socket編程(二)---通過UDP協議實現通信

1.UDP通信服務器端的實現:

public class UDPServer {
    public static void main(String[] args) throws IOException{
        /*
         * 接收客戶端請求
         */
        //1.創建DatagramSocket,並綁定相應的端口
        DatagramSocket socket = new DatagramSocket(8808);
        //2.創建DatagramPacket對象
        byte[] bytes = new byte[1024];
        DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
        //3.接收客戶端的請求
        System.out.println("***服務器已啓動,等待客戶端連接***");
        socket.receive(packet);
        //4.輸出客戶端請求
        String s = new String(bytes, 0, packet.getLength());
        System.out.println("收到客戶端請求:"+s);


        /*
         * 響應客戶端請求
         */
        //1.創建客戶端地址、端口、數據
        InetAddress address = packet.getAddress();
        int port = packet.getPort();
        byte[] bytes2 = "登錄成功,歡迎你!!!".getBytes();
        //2.創建數據報
        DatagramPacket packet2 = new DatagramPacket(bytes2, bytes2.length, address, port);
        //3.響應客戶端
        socket.send(packet2);
        //關閉socket
        socket.close();

    }
}

2.UDP通信客戶端的實現:

public class UDPClient {
    public static void main(String[] args) throws IOException{
        /*
         * 客戶端發送請求
         */
        //1.創建地址,端口,數據
        InetAddress address = InetAddress.getByName("localhost");
        int port=8808;
        byte[] data = "usr: lqq; password: 123".getBytes();
        //2.創建DatagramPacket對象
        DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
        //3.創建DatagramSocket對象
        DatagramSocket socket = new DatagramSocket();
        //4.發送請求
        socket.send(packet);

        /*
         * 客戶端接收響應
         */
        //1.創建數據報
        byte[] data2 = new byte[1024];
        DatagramPacket packet2  = new DatagramPacket(data2, data2.length);
        //2.接收響應
        socket.receive(packet2);
        //3.輸出接收到的數據
        String s = new String(data2, 0, packet.getLength());
        System.out.println("收到服務器響應:"+s);
        //4.關閉Socket
        socket.close();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章