zoukankan      html  css  js  c++  java
  • java 网络编(二)UDP的传输

    发送端:

    package cn.sasa.netDemo1;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    public class SendDemo {
    
        public static void main(String[] args) throws IOException {
            /**
             * DatagramPacket 数据报包,用于封装数据
             * 
             * DatagramSoket 用于数据传输
             * 
             * 两者都用于发送和接收
             */
            
            //实现UDP的发送
            //1、创建DatagramPacket对象,封装数据、接收的地址和端口
            //2、创建DatagramSocket
            //3、调用DatagramSocket的send方法发送数据
            //4、关闭资源,关闭DatagramSocket
            //
            byte[] buff = "hello".getBytes();
            InetAddress host = InetAddress.getByName("127.0.0.1");
            DatagramPacket packet = new DatagramPacket(buff, buff.length, host, 8046);
            
            DatagramSocket socket = new DatagramSocket();//发送使用空参构造函数
            socket.send(packet);//调用send
            socket.close();
        }
    
    }

    接收端:

    package cn.sasa.netDemo1;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    public class ReceiveDemo {
    
        public static void main(String[] args) throws IOException {
            /**
             * UDP的接收端
             * 
             * DatagramPacket 封装数据包,接收数据
             * 
             * DatagramSocket 实现数据传输
             * 
             * 接收步骤:
             * 1、创建DatagramSocket,绑定端口号,与发送端的端口号保持一致
             * 2、创建字节数组,接收数据
             * 3、创建DatagramPacket
             * 4、调用DatagramSocket的receive(DatagramPacket p)
             * 接收数据放在数据包
             * 5、拆包
             *         发送端IP
             *         接收到的字节长度
             *         发送端端口号
             * 6、关闭资源
             * 
             */
            //DatagramPacket
            DatagramSocket socket = new DatagramSocket(8046);
            byte[] buff = new byte[1024];
            DatagramPacket packet = new DatagramPacket(buff, buff.length);
            socket.receive(packet);
            int length = packet.getLength();//接收的字节长度
            System.out.println(new String(buff,0,length));
            System.out.println(packet.getAddress().getHostAddress()); //打印发送端IP地址
            System.out.println(packet.getPort());
            socket.close();
        }
    
    }
  • 相关阅读:
    IDEA 修改JavaWeb的访问路径
    坦克大战--Java类型 ---- (1)音乐播放
    codeforces 620C
    算法笔记之KMP算法
    算法笔记数组
    26. Remove Duplicates from Sorted Array
    哈夫曼树的证明
    Complete Binary Search Tree
    Root of AVL Tree
    .net framework环境
  • 原文地址:https://www.cnblogs.com/SasaL/p/10304239.html
Copyright © 2011-2022 走看看