Socket -- udp

2023-11-13

        接收者

        //完成System.out.println("UDPProvider Started.");

        //作为接收者,指定一个端口用于数据接收
        DatagramSocket ds = new DatagramSocket(20000);

        //构建接收实体
        final byte[] buf = new byte[512];
        DatagramPacket receivePack = new DatagramPacket(buf,buf.length);

        //接收
        ds.receive(receivePack);

        //打印接收到的信息与发送者的信息
        //发送端IP地址
        String ip = receivePack.getAddress().getHostAddress();
        int port = receivePack.getPort();
        int dataLen = receivePack.getLength();
        String data = new String(receivePack.getData(),0,dataLen);
        System.out.println("UDPProvider receive form ip:"+ip+"\tport:"+port
                            +"\tdata:"+data);

        //构建一份回送数据
        String responseData = "Receive data with len:" + dataLen;
        byte[] responseDataBytes = responseData.getBytes();
        //直接根据发送者构建一份回送信息
        DatagramPacket responsePacket = new DatagramPacket(responseDataBytes,
                responseDataBytes.length,receivePack.getAddress(),receivePack.getPort());

        ds.send(responsePacket);

        //完成
        System.out.println("UDPProvider Started.");
        ds.close();

 

 

        

       搜索者

        System.out.println("UDPSearcher Started.");

        //作为搜索方,让系统自动分配端口
        DatagramSocket ds = new DatagramSocket();

        //构建一份请求数据
        String requestData = "hello world:";
        byte[] requestDataBytes = requestData.getBytes();

        //直接构建packet
        DatagramPacket requestPacket = new DatagramPacket(requestDataBytes,
                requestDataBytes.length);
        requestPacket.setAddress(InetAddress.getLocalHost());
        requestPacket.setPort(20000);
        //发送
        ds.send(requestPacket);


        //构建接收实体
        final byte[] buf = new byte[512];
        DatagramPacket receivePack = new DatagramPacket(buf,buf.length);

        //接收
        ds.receive(receivePack);

        //打印接收到的信息与发送者的信息
        //发送端IP地址
        String ip = receivePack.getAddress().getHostAddress();
        int port = receivePack.getPort();
        int dataLen = receivePack.getLength();
        String data = new String(receivePack.getData(),0,dataLen);
        System.out.println("UDPSearcher receive form ip:"+ip+"\tport:"+port
                +"\tdata:"+data);

        //完成
        System.out.println("UDPSearcher Started.");
        ds.close();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Socket -- udp 的相关文章

  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它

随机推荐

  • Ubuntu18.04/16.04调整屏幕分辨率至1920*1080

    Ubuntu在设置 显示里面的分辨率选择没有1920 1080 我们可以手动增加该分辨率配置 然后进行设置 参考文字和图片 crtl alt t 打开终端窗口 获取添加分辨率的格式 输入 cvt 1920 1080 查看显示器信息及已经支持
  • 安卓HAL层 so库文件加载原理

    本文分析代码基于安卓6 0 上层app通过jni调用hal层的hw get module函数获取硬件模块 这个函数是上层与hal打交道的入口 这里我们就具体来看看hw get module的实现 文件路径 vim hardware libh
  • andorid 与滑动相关的一些知识---getscrollY onscrollchange() scrollby scrollto等

    Android系统手机屏幕的左上角为坐标系 同时y轴方向与笛卡尔坐标系的y轴方向想反 通过提供的api如getLeft getTop getBottom getRight可以获得控件在parent中的相对位置 同时 也可以获得控件在屏幕中的
  • python怎么升级python的pip

    报错提示 WARNING You are using pip version 19 1 1 however version 20 0 2 is available You should consider upgrading via the
  • ouldn‘t check the working tree for unmerged files because of an error. detected dubious ownership in

    IDEA的git的clone操作中如果出现问题 couldn t check the working tree for unmerged files because of an error detected dubious ownershi
  • LangChain 的聊天模型

    各位人工智能爱好者 大家好 今天 我们就来详细了解一下 LangChain 聊天模型 LangChain是一个很棒的工具 它提供了与各种语言模型交互的标准接口 包括基于文本的大型语言模型 LLM 和聊天模型 LangChain模型的概念 模
  • 【Linux命令详解

    文章标题 简介 一 参数列表 二 使用介绍 1 使用基本模式搜索 2 忽略大小写匹配 3 反向匹配 4 递归搜索目录 5 显示文件名 6 显示行号 7 显示上下文行 8 启用扩展正则表达式 9 将模式视为固定字符串 10 使用颜色高亮显示匹
  • Docker部署服务

    部署Nginx 寻找镜像 docker search nginx 默认最新版 官网查看不同的版本信息 下载镜像 docker pull nginx root iZwz9hv1phm24s3jicy8x1Z docker images REP
  • C语言打印输出斐波那契数前20项案例讲解

    我们先看什么是斐波那契数 斐波那契数列指的是这样一个数列 1 1 2 3 5 8 13 21 34 55 89 我们通过观察可以得出斐波那契数列的特点 1 第一项和第二项都是1 2 这个数列从第3项开始 每一项都等于前两项之和 思路分析 1
  • 2023年第二届全国大学生数据统计与分析竞赛题目B:电影评分的大数据分析第二问

    详细代码 企鹅2869955900 import pandas as pd import matplotlib pyplot as plt import numpy as np plt rcParams font sans serif Si
  • 【大数据】Hadoop 生态系统及其组件

    Hadoop 生态系统及其组件 1 Hadoop 生态系统的组成 2 Hadoop 生态系统简介 2 1 HDFS 2 2 MapReduce 2 3 YARN 2 4 Hive 2 5 Pig 2 6 HBase 2 7 HCatalog
  • python3 模块、import、from import

    模块 1 模块就是 py后缀的文件 2 py文件类似于一个类 包含以下部分 1 导入 一般的类都有导入 2 变量 对应类的属性 3 函数 对应类的方法 4 类 对应内部类 5 if name main 对应主函数 6 顶格写的代码段 对应构
  • OpenCV学习笔记(17)双目测距与三维重建的OpenCV实现问题集锦(二)双目定标与双目校正

    三 双目定标和双目校正 双目摄像头定标不仅要得出每个摄像头的内部参数 还需要通过标定来测量两个摄像头之间的相对位置 即右摄像头相对于左摄像头的三维平移 t 和旋转 R 参数 图6 要计算目标点在左右两个视图上形成的视差 首先要把该点在左右视
  • vue2+高德地图web端开发使用

    创建vue2项目 我们创建一个vue2项目 创建vue2项目就不用再多说了吧 使用 vue create 项目名 创建即可 注册高德地图 高德地图官网地址 https lbs amap com 如果是第一次使用 点击注册然后进入我们的控制台
  • idea快捷键最全最新最好

    持续更新 如果文档中没有的 麻烦在评论中添加 常用快捷键 返回最顶头 home 返回最末尾 end Alt Insert 可以新建类 文件 get或set方法 此快捷键又名创造一切 编辑区和文件区的跳转 alt 1 编辑区跳转至文件区 es
  • 272. 最长公共上升子序列(lcis,dp)

    首先是lis的状态划分图 然后是lcs 结合lis和lcs两种dp问题的分析方法 我们就可以得出lcis的状态分析图 1 首先上升子序列的分析方法 以某个数字为结尾 2 其次公共子序列的分析方法 有4种状态 00 01 10 11 双关键字
  • 128、函数接口类---Consumer

    一 概念 java util function Consumer
  • Git常用命令fetch和pull和push

    Git常用命令pull和push 1 fetch 从远程获取代码库 会将所有远程分支都拉到本地 并不会合并代码 git fetch 下载远程仓库的所有变动 git fetch remote git fetch origin 指定拉取远程re
  • 百度App Objective-C/Swift 组件化混编之路(二)- 工程化

    作者丨张渝 郭金 来源丨百度App技术 前文 百度App Objective C Swift 组件化混编之路 已经介绍了百度App 引入 Swift 的影响面评估以及落地的实施步骤 本文主要以依赖管理工具为支撑 介绍百度App 如何实现组件
  • Socket -- udp

    接收者 完成System out println UDPProvider Started 作为接收者 指定一个端口用于数据接收 DatagramSocket ds new DatagramSocket 20000 构建接收实体 final