java(7)--UDP传输

//定义发送端,通过udp协议完成。
用UDP发送数据。
思路:
1,建立一个UDPsocket服务。 //DatagramSocket
2,定义要发送的数据。
3,将数据打成数据包。 //DatagramPacket
4,通过socket服务将数据包发出去。//ds.send()
5,关闭资源。 //ds.close()

//UDP接收端。
建立UDP的接收端。
思路:
1,建立udpsocket服务。需要监听一个端口,简单说,就是给接收端这个应用程序定义一个数字标识。 //DatagramSocket
2,定义数据包用于存储接收到的数据。
3,使用socket服务的接收功能,将数据都存储到数据包中。 //DatagramPacket
4,通过数据包对象的方法获取具体的数据内容。 //dp.getData() dp.getAddress()
5,关闭资源。 ds.close()

发送端代码片:

class SendDemo {
    public static void main(String[] args) throws Exception
    {
        //1,创建udpsocket服务。
        DatagramSocket ds = new DatagramSocket();

    //2,定义数据。
    String str = "udp demo ,o le ";
    byte[] buf = str.getBytes();

    //3,将数据打成数据包.
    DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);

    //4,使用socket服务的send方法将数据发送出去。
    ds.send(dp);

    //5,关闭资源。
    ds.close();
   }
}

接收端代码片:

class ReceiveDemo 
{
    public static void main(String[] args) throws Exception
    {
        //1,创建udpsocket服务,并监听一个端口
        DatagramSocket ds = new DatagramSocket(10000);

        //2,建立数据包,用于存储数据。存储时需要定义个字节数组缓冲区。
        byte[] buf = new byte[1024];

        DatagramPacket dp = new DatagramPacket(buf,buf.length);

        //3,使用socket服务的receive方法将接收到的数据存储到数据包中。
        ds.receive(dp);

        //4,通过数据包对象的方法获取具体数据内容。
            //4.1获取地址。
            String ip = dp.getAddress().getHostAddress();

            //4.2获取端口
            int port = dp.getPort();
            //4.3获取数据。
            String data = new String(dp.getData(),0,dp.getLength());

            System.out.println(ip+"::"+data+"::"+port);
        //5,关闭资源。
        ds.close();
    }
}

你可能感兴趣的:(java,socket)