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 的不可靠传输,所以接收端如果接收不到数据包,数据就会被丢弃,因此应该先运行接收端。

  • 相关阅读:
    解决ubuntu不能安装g++的问题
    解决VMware虚拟机不能上网的问题
    打开vmvare出现The VMware Authorization Service is not running。
    word2-寻找社交新浪微博中的目标用户
    新浪云计算SAE部署代码过程
    Python如何调用新浪api接口的问题
    work1-英语辅导班在线报名系统
    Mysql对自增主键ID进行重新排序
    如何使用LIBSVM,从安装到基本实例使用
    laravel怎么创建一个简单的blog
  • 原文地址:https://www.cnblogs.com/wintersong/p/5705296.html
Copyright © 2011-2022 走看看