检查 Android/Java 上的端口是否打开

2024-01-26

我想检查端口是否打开,或者服务器是否正在其上运行。
我已经以多种方式尝试过,例如“/system/bin/ping”和“InetAddress”,但如果我是对的,我无法使用这些 ping 特定端口:/

这次我用 DatagramSockets 的想法做到了,如下所示:

try { String messageStr="Hello!";
   int server_port = 25565;
   DatagramSocket s = new DatagramSocket();
   InetAddress local = InetAddress.getByName("11.11.11.11");
   int msg_length=messageStr.length();
   byte[] message = messageStr.getBytes();
   DatagramPacket p = new DatagramPacket(message, msg_length,local,server_port); 
   textView1.setText("Inet");
   s.send(p); 
   textView1.setText("Send");
} catch (Exception e) {}

我收到“Inet”,但没有“发送”消息,所以我在发送时陷入困境。我尝试获取异常消息,它是 NetworkOnMainThreadException..


您无法 ping 特定端口。 “ping”是 ICMP 回显请求。 ICMP 是一个互联网层协议,因此没有“端口”的概念。

你可以使用Socket尝试建立到该端口的 TCP 连接。如果连接成功,则说明有东西正在侦听 TCP 连接。如果无法连接,则说明在某种程度上无法访问。

你可以使用DatagramSocket尝试将数据包发送到端口。如果成功,则可能有东西正在接收数据。如果失败,则肯定出现了问题(顺便说一句,如果收到发往未对 UDP 开放的端口的 UDP 数据包,或者如果某些东西主动拒绝途中的数据包,则会发回 ICMP 错误消息)。

您必须使用以上两种方法来检查 TCP 和 UDP。

注意InetAddress默认情况下使用 ICMP 请求作为 ping,但如果它没有这样做的权限,它将转而尝试建立 TCP 连接。然而,如果它does具有生成 ICMP 数据包的权限,但无法强制其尝试 TCP 连接。因此,如果您想使用该方法,只需使用Socket.

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

检查 Android/Java 上的端口是否打开 的相关文章

  • 安装应用程序时复制 SD 卡上的文本文件?

    我正在开发一款安卓游戏 我想在用户第一次安装游戏时将文本文件复制到外部 SD 卡 文本文件对于正确运行游戏非常重要 我怎样才能做到这一点 我应该将文本文件放在 Eclipse 源项目中的哪里 以便当我构建 apk 文件时 我的文本文件也会捆
  • 将 uiautomator 测试用例与 Android 中的应用程序代码集成

    我正在使用 Eclipse IDE 这是我的 uiautomator 测试用例代码 public class caltest extends UiAutomatorTestCase public void testDemo throws U
  • 使用 Bixolon R200 进行打印的 Android 应用程序

    我正在开发一个 Android 应用程序 用于使用 Bixolon R200 进行打印 我在工作中使用 bxlprint jar 的类 当我想打印波斯字符串时 打印机打印奇怪的字符 我使用UTF 8和UTF 16进行编码 你能帮我吗 Str
  • 记录中嵌套 Spring 配置(ConfigurationProperties)

    如何绘制一张地图application yaml将嵌套属性配置为 Java 中类似的记录结构 例如 如果我们有以下 yaml foo bar something 42 baz otherThing true color blue 所需的记录
  • 将 Android 应用程序与服务器上的 Matlab 应用程序连接

    我正在 Android 上开发一个应用程序 它将获取图像输入 并将该输入传递到安装 MATLAB 应用程序的服务器 MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序 我想知道我可以使用哪个服务器 如何将 MATLAB
  • 离子和电容器 - Android 启动画面响应能力

    Context 这与闪屏图像响应能力有关 根据我的研究 它之所以发生是因为缺少文档电容器文档 启动画面 https capacitorjs com docs apis splash screen Problem 当实现电容器的闪屏插件时 问
  • 更新写入 java 文本文件的对象

    将 Java 对象或列表写入文本文件是可以的 但我想知道如何更新或重写以前写入的对象而不再次写入对象 例如 假设有一个 java util List 有一组对象 然后将该列表写入文本文件 然后稍后该文件将被再次读取并从列表中获取所有对象 然
  • 如何在 spring-boot 中禁用 spring-data-mongodb 自动配置

    有没有人尝试过在 spring boot 中禁用 mongodb 的自动配置 我正在尝试使用 spring data mongodb 来启动 spring boot 使用基于java的配置 使用 spring boot 1 2 1 RELE
  • 如何在外部浏览器中打开 Android 应用程序中的链接?

    任何人都可以帮助我在代码中打开外部浏览器或其他 Android 应用程序中的链接吗 现在的情况是链接在应用程序本身中打开 但如果该链接属于 Android 应用程序 则无法打开 它显示安装 Android 应用程序 所以我希望如果链接可以在
  • 如何在应用程序级别管理只读数据库连接

    我们使用的是Java Spring Ibatis MySql 有没有办法利用这些技术在应用程序级别管理只读连接 我希望在只读 MySql 用户的基础上添加额外的保护层 如果 BasicDataSource 或 SqlMapClientTem
  • 从alertDialog构建器获取editText值

    我是新来的android 我需要得到editText s搜索某些东西的价值 但是当我运行程序时 出现错误null pointer exception EditText etSearch 没有获取它的文本 请帮我 谢谢 public bool
  • JPA 的 commit() 方法是否使实体分离?

    我现在一直在搜索JPA实体生命周期 但现在 关于实体生命周期存在一些缺失的点 我在 stackoverflow 的一篇帖子中找到了下图 请记住该图已被投票 根据此图 当我们持久化实体时 它就变成了托管实体 好的 没问题 当我们提交时 数据会
  • 如何在android中格式化长整型以始终显示两位数

    我有一个倒计时器 显示从 60 到 0 的秒数 1 分钟倒计时器 当它达到 1 位数字 例如 9 8 7 时 它显示 9 而不是 09 我尝试使用String format B 02d B x 我将 x 从 long 转换为字符串 它不起作
  • 使用当前日期时间的 RecyclerView 的动态节标题

    我将使用 RecyclerView 作为节标题 我想在 SQLite 数据库中插入每个日期和时间数据时创建节标题 我按照以下链接获取了此解决方案 但没有成功 请参考下图 对于上面的图像数据 使用以下代码或部分是静态的 List
  • @Where 子句在 hibernate join 查询中不起作用

    我有 2 个带有 Where 注释的实体 第一个是类别 Where clause DELETED 0 public class Category extends AbstractEntity 且有如下关系 OneToMany fetch F
  • Android ProGuard 混淆库:让类无法工作

    Intro 我在 AS 1 项目中有 2 个模型 带有一些 公共 API 类 的 Android 库项目 Android APP依赖上述库 库模块在依赖列表中 Task 我想混淆我的库项目 因为我想将其公开为公共 SDK 但又要保护我的代码
  • 从自定义类导入时,XMLBeans jar 无法签名

    在 NetBeans 中 我创建了一个 Exporter 类 该类使用 APACHE POI 将一些数据导出到 EXCEL 文件 而 APACHE POI 使用 XMLBeans 我通过下载 zip 二进制文件并手动添加 jar 来添加 A
  • 使用 HttpClient 在 java 中进行连接池 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何使用 HttpClient 创建连接池 我必须频繁连接到同一台服务器 值得创建这样一个池吗 是否可以保持 HTTP 连接处于活动状
  • onActivityresult 数据为空

    这是我的相机应用程序 我想在其中捕获图像并裁剪它 但它拍照保存在我的 myimage 目录中 但不执行裁剪功能 请我需要帮助 我是这个领域的新人 这是我的相机开源代码 Intent intent new Intent MediaStore
  • 如何在我的 Android 库 (AAR) 中包含 proguard 配置

    Android 库 根据AAR 文件规范 http tools android com tech docs new build system aar format 包含一个 proguard txt 文件 我的理解是 该文件声明了如何正确地

随机推荐

  • 着色器使立方体的边缘倾斜?

    这个问题涉及使用着色器 可能在 Unity3D 环境中 但 Metal 或 OpenGL 都可以 以在网格最小立方体上实现圆角边缘 我希望只使用 12 个三角形的简约网格立方体 然后通过着色器 使每个块的边缘 角 稍微倾斜 其实这样可以吗带
  • Set-Cookie 标头未在 Chrome 中设置 cookie

    我正在 AJAX 调用另一个服务 API 然后该 API 应该返回一个 cookie 该 cookie 将在我的浏览器中设置 以允许我进行其余的 API 调用 然而 虽然响应标头包含 Set Cookie 标头 但实际上并未设置任何 coo
  • 是否可以同时使用带有多个预设的 Jest?

    是否可以将 Jest 与多个预设一起使用 例如 jsdom 和 react native 我想测试一个可以在 Web 和 React Native 环境中工作的 React 组件 问题是该组件可能使用 React Native 库或某些文档
  • Intellij 中的 AVD 管理器被禁用

    我正在记录这个问题和解决方案 如下 因为我第二次发现自己在这上面浪费了几个小时 解决方案 文件 gt 设置 gt 在搜索栏中输入 Android 选择 Android SDK 选择 编辑 Intellij 现在要求下载 SDK 800MB
  • Django - 媒体上传 [Errno 13] 权限被拒绝

    我在让 django 很好地处理图像上传时遇到了一些麻烦 我的脚本将根据日期创建目录 如下所示 file models FileField upload to uploads m Y 现在 如果我在上传文件夹中创建日期目录并将文件夹 chm
  • 自动布局使视图在剩余空间中居中(以编程方式)

    如何添加自动布局约束以编程方式将视图置于剩余空间的中心 参见下面的示例图片 目前 我在底部添加一个容器视图 然后将视图置于容器视图的中心 但我想知道是否有任何其他解决方案不需要使用容器视图 您需要添加一个间隔视图来执行此操作 让我们从一些观
  • 如何在 ASP.NET Core 中设置强类型配置?

    本文 http www mikesdotnetting com article 284 asp net 5 configuration and 另一篇文章 https weblog west wind com posts 2015 Jun
  • 第一次调用时 ZuulException (SendErrorFilter)

    我正在通过 Spring Cloud Spring Boot 和 Docker 构建一个应用程序 整个应用程序运行良好 我有几个微服务 每个项目都在 Docker 上运行 当我尝试通过 Zuul API 网关使用我的微服务时 我在第一次调用
  • JCS编辑磁盘辅助缓存DiskPath

    我正在开发一个带有 JCS 1 3 缓存的 Web 应用程序 我需要在运行时从 JVM 属性编辑索引磁盘辅助缓存的 DiskPath 你知道有什么方法可以做到这一点吗 我设法创建了辅助缓存对象 但我不知道如何将它与 cache ccf 中定
  • SQL 分页查询 order by

    我正在尝试编写一个查询来提取多个字段并为其分配别名 其中一个别名实际上是两个字段的总和 这实际上是我最大的问题 因为该别名是可能进行排序的 字段 之一 否则我可以删除所有别名而不会出现此问题 无论如何 我需要能够传入一个以编程方式排序的字段
  • 包含子模块的“推送部署”接收后挂钩?

    目前 我有一个post receive钩子包含 git work tree served data location git dir this bare git repo checkout f 这非常有效 直到我想包含一个子模块 它只是忽略
  • Python os.walk + 跟随符号链接

    如何让这篇文章遵循 python 2 6 中的符号链接 def load recursive self path for subdir dirs files in os walk path for file in files if file
  • 优化掉“while(1);”在 C++0x 中

    已更新 请看下文 我听说并读到 C 0x 允许编译器为以下代码片段打印 Hello include
  • 这会在全球范围内启用“use strict”吗?

    类似 但不一样 如何在全局范围内启用 ECMAScript use strict https stackoverflow com questions 4769477 how to enable ecmascript use strict g
  • 使用安装项目在安装时指定 Windows 服务名称

    目标 为了支持在一台计算机上可能有多个实例的 Windows 服务 请使用安装项目创建一个能够执行以下操作的 MSI 接收用户输入的服务名称 安装服务 从 1 开始序列化服务名称 以便在日志记录和卸载时可以使用正确的名称 我最初的希望是在
  • JS/Es6 如何合并两个数组并覆盖其对象中的值

    假设我有一个像这样的数组 let arrayOne text one value 0 text two value 0 let arrayTwo text two value 5 So arrayOne总是我想要的整个对象集 但所有值都将为
  • Selenium Chrome 窗口中的按钮不可点击

    我正在尝试使用 Selenium 和 Python 单击按钮 我需要理解的这个问题的根源是 当 Selenium 启动 Chrome 窗口时 我想单击的按钮在单击时不会执行任何操作 就像我用鼠标点击按钮一样 什么也不会发生 它似乎是页面上唯
  • 如何将 bash 输出捕获到 Mac OS X 剪贴板?

    是否可以将 bash 输出捕获到 OS X 剪贴板 The pbcopy http developer apple com Mac library documentation Darwin Reference ManPages man1 p
  • OpenJDK7 OS X 上的 file.listFiles() 在包含欧元符号的文件名上损坏

    似乎以下 file listFiles 在 OS X 上的 OpenJDK 7 上被破坏 此代码片段将打印 此文件有欧元符号 不存在 final String pathname System getProperty user home fo
  • 检查 Android/Java 上的端口是否打开

    我想检查端口是否打开 或者服务器是否正在其上运行 我已经以多种方式尝试过 例如 system bin ping 和 InetAddress 但如果我是对的 我无法使用这些 ping 特定端口 这次我用 DatagramSockets 的想法