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();
        
        }
    
    }
  • 相关阅读:
    矩阵快速幂 HDU3483
    欧拉函数 求小于某个数并与其互质的数的个数
    扩展欧几里德算法求逆元3
    拓展欧几里德算法求逆元2
    【20140113-2】MyEclipse生成javadoc时出错:编码GBK的不可映射字符
    【131202】SQL
    【20140113】package 与 import
    系统架构等级
    ora-01658 :无法为表空间USERS 中的段创建INITIAL区
    WMSYS.WM_CONCAT 函數的用法
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5931190.html
Copyright © 2011-2022 走看看