java網絡編程(3)——UDP

  UDP在java中主要使用DatagramSocket來實現通信,數據通常是經過DatagramPacket來封裝;java

  發送方只需指定接受方的地址和端口,而後經過send()方法就能夠把封裝在DatagramPacket中數據發送過去!socket

  而接收方只需一樣利用DatagramSocket和一個DatagramPacket來接收數據就能夠了,接受只需指定接受端口就能夠了,具體以下:spa

  發送方:.net

  

package com.seven.exercise1;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UdpSend {

    
    public static void main(String[] args) throws Exception {
        
        //1.udp服務
        DatagramSocket ds = new DatagramSocket();
        
        //2.封裝數據到DatagramPacket
        byte[] data = "hello udp socket".getBytes();
        
        InetAddress inetAddress = InetAddress.getByName("127.0.0.1");//地址.
        DatagramPacket datagramPacket = new DatagramPacket(data, data.length, inetAddress, 10000);
        
        //3.發送數據
        ds.send(datagramPacket);
        
        //4.關閉
        ds.close();
        
    }
}

  接受方;code

package com.seven.exercise1;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UdpReceive {
    
    public static void main(String[] args) throws Exception{
        //1.新建接收方
        DatagramSocket datagramSocket = new DatagramSocket(10000);
        //2.綁定接收package
        byte[] b  = new byte[1024];
        DatagramPacket dp = new DatagramPacket(b,b.length);
        //3.接收數據
        datagramSocket.receive(dp);
        //4.接收到數據的話那就打印出來
        String data = new String(dp.getData(),0,dp.getLength());
        System.out.println(dp.getAddress().getHostAddress() +"----->"+ data);
        //5.關閉;
        datagramSocket.close();
        
    }

}

  由於UDP是面向無鏈接的,因此不管怎麼運行均可以,可是爲了可以接受到數據,咱們要把接受方先運行起來,再去運行發送方,這樣才能夠看出效果,否則的話數據包丟失也就看不出什麼效果了==。blog

相關文章
相關標籤/搜索