zoukankan      html  css  js  c++  java
  • 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();
        
        }
    
    }
  • 相关阅读:
    dwz 嵌套网页的搜索刷新问题
    dwz 解决remote验证唯一时缓存问题。
    dwz div 局部刷新
    Oracle 递归查询子节点和父节点 函数方法
    关于未能加载文件或程序集“System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项的解决办法
    CentOS7搭建vsftp服务器
    Linux下 cmatrix的安装和使用(黑客屏保)
    配置动态web服务(wsgi)
    centos7 搭建discuz 全
    Centos7 更换为阿里源
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5931190.html
Copyright © 2011-2022 走看看