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();
        }
    }
  • 相关阅读:
    noteOneForGephi
    麻省理工学院公开课:计算机科学及编程导论
    数据存储之归档
    UITableViewController之聊天窗口
    UI基础之UIScrollView
    UI基础之网易新闻demo小项目
    UI基础之UITableViewController
    UI基础之UINavigationController
    UITabBarController
    UIScrollView
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10250078.html
Copyright © 2011-2022 走看看