UDP发送端&UDP接收端

Posted 北方丶有佳人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UDP发送端&UDP接收端相关的知识,希望对你有一定的参考价值。

UDP发送端:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UdpSendDemo {

    public static void main(String[] args) throws IOException {

        /*
         * 需求:建立udp发送端
         * 思路:
         * 1.建立可以实现udp传输的socket服务
         * 2.明确具体发送的数据
         * 3.通过socket服务将具体的数据发送出去
         * 4.关闭服务
         */
        
        System.out.println("udp发送端启动.....");
        
        //1.创建udp服务
        DatagramSocket ds = new DatagramSocket(1025);
        
        //2.明确数据
        String s = "注意啦,UDP来了";
        
        //3.发送数据,将数据封装到数据包中。
            //3.1将数据封装到数据包对象中,数据汇明确目的地址和端口
        byte[] buf = s.getBytes();
        DatagramPacket dp = new DatagramPacket(buf, buf.length, 
                InetAddress.getByName("dell-pc"),10000);
        
            //3.2发送
        ds.send(dp);
        
        ds.close();
        
    }

}

UDP接收端:

 

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UdpReceiveDemo {

    public static void main(String[] args) throws IOException {
        
        /*
         * 创建udp的接收端
         * 思路:
         * 1.创建socket服务,明确一个端口。
         * 2.收数据
         * 3.将其中所需要的数据取出来。ip,data,port
         * 4.关闭资源
         */
        
        System.out.println("udp接收端启动了.....");
        //1.创建socket服务
        DatagramSocket ds = new DatagramSocket(10000);
        
        //2.使用socket的接受方法,接收数据,需要到收到的数据存储到数据包中
        //可以通过数据包对象的方法对收到的数据进行解析
            //2.1创建一个数据包
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf, buf.length);
        
        ds.receive(dp);//阻塞式方法
        
        //3.通过数据包对象解析收到的数据,使用数据包的方法
        String ip = dp.getAddress().getHostAddress();
        int port = dp.getPort();
        //获取文字数据
        String str = new String(dp.getData(),0,dp.getLength());
        System.out.println(ip+":"+port+"------"+str);
        
        //4.关闭资源
        ds.close();
    
    }

}

 

以上是关于UDP发送端&UDP接收端的主要内容,如果未能解决你的问题,请参考以下文章

UDP接收端和发送端_Socket编程

Udp发送端和接收端

UDP协议

socket编程之TCP/UDP

终端通过GPRS发送UDP数据到固定IP:端口号,socket recvfrom接收不到数据,但却有返回值,如何解决

UDP与TCP协议