zoukankan      html  css  js  c++  java
  • UDP编程系列二

    在UDP系列一之上的扩展

    server端

    程序解析:在ds.receive(dp)接收到数据的时候,包装了两层数据管道,然后读取的时候转化成long型数据读取出来

    package networkProgramming;
    
    import java.io.ByteArrayInputStream;
    import java.io.DataInputStream;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    public class TestUDPServer1 {
        public static void main(String[] args) throws Exception{
            byte buf [] = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf, buf.length);
            DatagramSocket ds=new DatagramSocket(5678);
            while(true) {
                //已接收数据在buf缓冲区
                ds.receive(dp);
                //从buf中读取
                ByteArrayInputStream bais = new ByteArrayInputStream(buf);
                DataInputStream dis = new DataInputStream(bais);
                //转换为long型
                System.out.println(dis.readLong());
            }
        }
    }

    client端

    程序解析:就是在long型数据外包装两层数据管道,再将它转换为byte数据类型发送出去

    package networkProgramming;
    
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    
    public class TestUDPClient1 {
        public static void main(String[] args) throws Exception{
            long n=10000L;
            /*
             * public class ByteArrayOutputStream extends OutputStream
             * 该类实现了将数据写入字节数组的输出流。 当数据写入缓冲区时,缓冲区会自动增长。
             */
            ByteArrayOutputStream baos=new ByteArrayOutputStream();
            DataOutputStream dos=new DataOutputStream(baos);
            dos.writeLong(n);
            //long型整数转换为字节数组
            byte [] buf = baos.toByteArray();
            System.out.println(buf.length);
            
            DatagramPacket dp =new DatagramPacket(buf, buf.length,
                    new InetSocketAddress("127.0.0.1", 5678));
            DatagramSocket ds=new DatagramSocket(9999);
            ds.send(dp);
            ds.close();
        }
    }
  • 相关阅读:
    【力扣】767. 重构字符串
    【力扣】976. 三角形的最大周长
    【力扣】164. 最大间距
    【力扣】454. 四数相加 II
    JS中,输出1-10之间的随机整数
    web移动端浮层滚动阻止window窗体滚动JS/CSS处理
    禁止网站F12和查看源码
    苹果浏览器移动端click事件延迟300ms的原因以及解决办法
    jQuery下锚点的平滑跳转
    js实现placehoider效果
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10250078.html
Copyright © 2011-2022 走看看