zoukankan      html  css  js  c++  java
  • Udp 接收端和发送端的实现

    /*
         * Udp发送数据
         *
         * 1、建立Udp Socket 服务
         * 2、提供数据,并将数据封装到包中
         * 3、通过Socket的数据发送功能,将数据包发送出去
         * 4、关闭资源
         */

    package com.langsin.udp;
    
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    public class UdpSend {
        
        public static void main(String[] args) throws Exception {
            //1
            DatagramSocket ds=new DatagramSocket(11002);   //这里可以指定发送端的端口号,否则系统将自动分配  
            //2
            byte[] buf="Hello World!!".getBytes();
            DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.197"),10000 );
            //3
            ds.send(dp);
            //4
            ds.close();
        }
    
    }

    /*
     * Udp的接受

     *
     * 1、建立Udp 的 Socket 服务
     * 2、定义一个数据包用于存储接收到的字节数据
     * 3、通过socket 的 receive 方法将接收到的数据存储到数据包中
     * 4、通过数据包的特有功能,将这些数据取出
     * 5、关闭资源
     *
     */

    package com.langsin.udp;
    
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    
    public class UdpRece {
        public static void main(String[] args) throws Exception{
            //1
            DatagramSocket ds=new DatagramSocket(10000);
            //2
            byte[] buf=new byte[1024];
            DatagramPacket dp=new DatagramPacket(buf, buf.length);
            //3
            ds.receive(dp);
            //4
            String ip=dp.getAddress().getHostAddress();
            int port=dp.getPort();   //得到发送端的端口号
            String data=new String(dp.getData(),0,dp.getLength());
            System.out.println(ip+"  "+data+"  "+port);
            //5
            ds.close();
            
        }
    
    }

    因为udp 的不可靠传输,所以接收端如果接收不到数据包,数据就会被丢弃,因此应该先运行接收端。

  • 相关阅读:
    FastJson---高性能JSON开发包
    mybatis中大于等于小于等于的写法
    MarkDown 使用说明示例
    Get和Post的参数传值
    规则引擎 资料收集
    ORA-01033错误解决方案
    mybatis 参数为String,用_parameter 取值
    php中实现记住密码下次自动登录的例子
    php 应用 bootstrap-fileinput 上传文件 插件 操作的方法
    AJAX 跨域请求
  • 原文地址:https://www.cnblogs.com/wintersong/p/5705296.html
Copyright © 2011-2022 走看看