• udp编程


    服务端
    * 1、创建服务端+端口
    * 2、准备接收容器
    * 3、封装成包
    * 4、接收数据
    * 5、分析数据
    * 6、释放
    * 字节数组 +Data 输入流 (字节数组转成double类型)

    客户端
    * 1、创建客户端+端口
    * 2、准备数据(字节数组)
    * 3、打包(发送的地点及端口)
    * 4、发送
    * 5、释放
    * 字节数组 数据源+Data 输出流 (double 类型转成字节数组)

    服务端代码

    MyServer.java

    package udp;
    
    import java.io.ByteArrayInputStream;
    import java.io.DataInputStream;
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    /*
     * 服务端
     * 1、创建服务端+端口
     * 2、准备接收容器
     * 3、封装成包
     * 4、接收数据
     * 5、分析数据
     * 6、释放
     * 字节数组 +Data  输入流 (字节数组转成double类型)
     */
    public class MyServer {
        public static void main(String[] args) throws IOException {
            // 1、创建服务端+端口
            DatagramSocket server=new DatagramSocket(6666);
            //2、准备接收容器
            byte[] container=new byte[1024];
            //3、封装成包
            DatagramPacket packet=new DatagramPacket(container,container.length);
            //4、接收数据
            server.receive(packet);
            //5、分析数据
            double data=convert(packet.getData());
    //        byte [] data=packet.getData();
    //        int len=packet.getLength();
    //        System.out.println(new String(data,0,len));
            System.out.println(data);
            //6、释放
            server.close();
        }
        /*
         * 字节数组 +Data  输入流
         */
        public static double convert(byte[]data) throws IOException {
            DataInputStream dis=new DataInputStream(new ByteArrayInputStream(data));
            double num=dis.readDouble();  //将数据读出来   
            dis.close();
            return num;
        }
    }

    客户端代码

    MyClient.java

    package udp;
    
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    import java.net.SocketException;
    
    /*
     * 客户端
     * 1、创建客户端+端口
     * 2、准备数据(字节数组)
     * 3、打包(发送的地点及端口)
     * 4、发送
     * 5、释放
     * 字节数组 数据源+Data 输出流 (double 类型转成字节数组)
     */
    public class MyClient {
        public static void main(String[] args) throws IOException {
            //1、创建客户端+端口
            DatagramSocket client=new DatagramSocket(8811);    
            //2、准备数据
            double num=89.12;
    //        String msg="udp编程";
    //        byte data[]=msg.getBytes();
            byte data[]=convert(num);
            //3、打包(发送的地点及端口)
            DatagramPacket packet=new DatagramPacket(data,data.length,new InetSocketAddress("localhost",6666));
            //4、发送
            client.send(packet);
            //5、释放
            client.close();
        }
        /*
         * 字节数组 数据源+Data 输出流
         */
        public static byte[] convert(double num) throws IOException {
            byte[] data=null;
            ByteArrayOutputStream bos=new ByteArrayOutputStream();  //内存
            DataOutputStream dos=new DataOutputStream(bos);       //输出流
            dos.writeDouble(num);    //将数据num写入内存      写进去
            dos.flush();
            
            //获取数据
            data=bos.toByteArray();    //装换成字节
            dos.close();
            return data;
        }
    }
  • 相关阅读:
    路飞学城-Python爬虫集训-第二章
    路飞学城-Python爬虫集训-第一章
    pymysql 使用
    Mysql 用户管理和权限设置
    spring data jpa
    thymeleaf学习
    Spring Boot技术栈博客笔记(1)
    SpringBoot学习(2)
    使用idea引入注解@SpringBootApplication报错Cannot resolve symbol 'SpringBootApplication'
    SpringBoot学习(1)
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11266096.html
Copyright © 2020-2023  润新知