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();
        }
    
    }
  • 相关阅读:
    黎活明给程序员的忠告
    servlet单实例多线程模式
    Servlet 获取多个参数
    Java Servlet学习笔记(四)Servlet客户端Http请求
    JavaWeb 后端 <二> 之 Servlet 学习笔记
    Servlet 规范笔记—基于http协议的servlet
    Servlet 规范笔记—servlet概念及结构
    看懂UML类图和时序图
    hibernate中的事务管理是怎么概念?
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
  • 原文地址:https://www.cnblogs.com/SasaL/p/10304239.html
Copyright © 2011-2022 走看看