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();
        }
    
    }
  • 相关阅读:
    Redis与Redis 伪集群环境的搭建
    github的基本使用
    使用七牛云存储图片或文件并回显
    阿里云搭建wordpress博客教程
    判断是否同一天 同一月
    Python学习笔记之 并发编程
    Python学习笔记之 日志模块logging使用详解
    Python学习笔记之 网络编程(socket套接字编程)
    Python实现TCP文件传输
    实例:Python实现聊天室
  • 原文地址:https://www.cnblogs.com/SasaL/p/10304239.html
Copyright © 2011-2022 走看看