java的UDP通信[通俗易懂]

java的UDP通信[通俗易懂]importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramSocket;/*UDP接收

大家好,又见面了,我是你们的朋友全栈君。


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/*
    UDP接收数据:
        因为接收端不知道发送端什么时候停止发送,故采用死循环接收
 */
public class ReviceUdp {
    public static void main(String[] args) throws IOException {
        //创建接收端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket(12345);

        while (true) {
            //创建一个数据包,用于接收数据
            byte[] bys = new byte[1024];
            DatagramPacket dp = new DatagramPacket(bys, bys.length);

            //调用DatagramSocket对象的方法接收数据
            ds.receive(dp);

            //解析数据包,并把数据在控制台显示
            System.out.println("数据是:" + new String(dp.getData(), 0, dp.getLength()));
        }

        //关闭接收端
//        ds.close();
    }
}

package mystring.demo2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
    UDP发送数据:
        数据来自于键盘录入,直到输入的数据是886,发送数据结束
 */
public class SendUdp {
    public static void main(String[] args) throws IOException {
        //创建发送端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket();

        //自己封装键盘录入数据
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            //输入的数据是886,发送数据结束
            if ("886".equals(line)) {
                break;
            }

            //创建数据,并把数据打包
            byte[] bys = line.getBytes();
            DatagramPacket dp = new DatagramPacket(bys, bys.length, InetAddress.getByName("LAPTOP-9D3ST92M"), 12345);

            //调用DatagramSocket对象的方法发送数据
            ds.send(dp);
        }

        //关闭发送端
        ds.close();
    }
}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155247.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • R 检测多重共线性

    R 检测多重共线性多重共线性可用统计量VIF(VarianceInflationFactor,方差膨胀因子)进行检测。VIF的平方根表示变量回归参数的置信区间能膨胀为与模型无关的预测变量的程度(因此而得名)。car包中的vif()函数提供VIF值。一般原则下,vif>2就表明存在多重共线性问题。检测多重共线性>library(car)>vif(fit)PopulationIlliteracyIncomeFrost1.22.21.32.1&g

    2022年5月6日
    51
  • hostapd的分析[通俗易懂]

    hostapd的分析[通俗易懂]Hostapd的功能就是作为AP的认证服务器,负责控制管理stations(通常可以认为带无线网卡的PC)的接入和认证。通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求

    2022年5月21日
    141
  • JAVA实习生/应届生面试笔试题(一)

    一:单选题1. 下列哪一种叙述是正确的(D )A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号2. 如下代码publicclassTest{publicintaMethod(){staticinti=0;i++;returni;}publicstatic…

    2022年4月9日
    82
  • 关于DOCTYPE html PUBLIC[通俗易懂]

    关于DOCTYPE html PUBLIC[通俗易懂]关于

    2022年7月12日
    23
  • 声源定位方法_声源定位算法

    声源定位方法_声源定位算法目录1.TDOA简介2.时延估计3.定位估计4.声源定位根据现有的研究成果来看,声源定位(SoundSourceLocalization,SSL)存在以下几种方法:基于最大输出功率的可控波束成形的定位方法、基于高分辨谱估计的定位方法和基于到达时延差(TimeDifferenceofArrival,TDOA)估计的定位方法,以及基于机器学习的方法。其中基于时延估计的定位方法计算量小,实时性好,实用性强等特点,我们就先介绍这种较为简单的声源定位算法。基于TDOA的方法一般

    2022年9月23日
    2
  • 易百教程wxpython_WxPython教程

    易百教程wxpython_WxPython教程wxPython是一个Python包装wxWidgets(这是用C++编写),一个流行的跨平台GUI工具包。由RobinDunn以及HarriPasanen开发,wxPython是作为一个Python扩展模块。就像wxWidgets,wxPython也是一个免费的软件。它可以从官方网站下载:http://wxpython.org.在本网站上可下载wxPython对应操作系统平台二进…

    2022年5月22日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号