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
  • 相关阅读:
    2.22
    LG P7077 函数调用
    2020/10/30 模拟赛 序列
    2020/10/27 模拟赛 数列
    2020/10/23 模拟赛 chip
    2020/10/23 模拟赛 escape
    2020/10/23 模拟赛 center
    LOJ#6581. 「ICPC World Finals 2019」断头路探测者
    LG P1587 [NOI2016]循环之美
    LG P4156 [WC2016]论战捆竹竿
  • 原文地址:https://www.cnblogs.com/wf293/p/14701796.html
Copyright © 2011-2022 走看看