zoukankan      html  css  js  c++  java
  • 网络编程,UDP传输,模拟数据的发送接收

    1.发送Send

      创建DatagramSocket,随机端口号

      创建DatagramPacket,指定数据,长度,地址,端口。

      使用DatagramSocket发送DatagramPacket

      关闭DatagramSocket

    2.接收Receive

      创建DatagramSocket,指定端口号

      创建DatagramSocket,指定数组,长度

      使用DatagramSocket接收DatagramSocket

      关闭DatagramSocket

      从DatagramSocket中获取数据

    3.接收方法获取ip和端口号

      String ip = packet.getAddress().getHostAddress();

      int port = packet.getPort();

    模拟数据发送端:

    String str = "what are you";

    //创建socket相当于创建码头
    DatagramSocket socket;
    try {
    socket = new DatagramSocket();
    //创建Packet相当于集装箱
    DatagramPacket packet =
    new DatagramPacket("str".getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"),6666);
    //将数据发出去:发货
    socket.send(packet);
    //关闭码头(底层是io流所以用完后要关闭)
    socket.close();
    } catch (IOException e) {
    e.printStackTrace();
    }

    模拟数据接收端:

    try {
    //创建socket相当于创建码头,指定端口号
    DatagramSocket socket1 = new DatagramSocket(6666);
    //创建Packet相当于集装箱
    DatagramPacket packet1 = new DatagramPacket(new byte[1024],1024);
    //接收数据:接货
    socket1.receive(packet1);
    //获取数据(获取到所有的字节个数)
    byte[] arr = packet1.getData();
    int len = packet1.getLength();//获取有效的字节个数
    System.out.println(new String(arr,0,len));
    socket1.close();
    } catch (IOException e) {
    e.printStackTrace();
    }

     

    添加微信进交流群: opiopi293
  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/wf293/p/14701796.html
Copyright © 2011-2022 走看看