java - Android - 源端口 800 的 DatagramSocket 未发送
问题描述
我有一个小工具,可以将 UDP 数据包从端口 800(Android)发送到端口 804 上的 PC(Windows),所以我使用 DatagramSocket(800),它只是不起作用,而(几乎)所有其他端口都工作(通常是 4 位端口)所以我想知道Android上是否保留了800(我尝试了netstat并且无法使用端口800找到一些东西)以及是否有任何解决方法(除了Rooting)。我不能真正改变端口,因为它们是固定的,所以它要么 800->804 要么什么都不起作用!
先感谢您。
解决方案
在 Linux 上,您必须拥有 root 权限才能绑定到低于 1024 的端口。除非您能够提升您的应用程序权限并充当 root(至少在绑定时,您以后可以像大多数用户一样回退到普通用户)使用“较低”端口的软件),您必须选择其他端口才能成功。这就是您的“4 位端口号”测试有效的原因(即 1000 会失败 :),而 800 则不会。
推荐阅读
- python - 我尝试使用 python 进行网页抓取,但输出为空。我做错什么了吗?
- symfony - Symfony 进程组件 mysqldump gzip
- r - 使用 R 中的 lapply 或 sapply 优化循环以组合列表中的项目
- sql - 我想将 Postgres 表导出为 CSV 文件作为 Flask 上的下载按钮。怎么做?
- vue.js - Vue.js (Quasar) SPA 在每次重新加载页面时重新启动 Auth Code Flow
- sftp - 如何使用 sftp 连接使用 informatica 中的公钥/私钥(非密码)将文件发送到远程服务器?
- python - 如何在 python 中使用异步函数和多处理?
- python-3.x - 基于关系的矩阵分组
- javascript - 从 React 中的 API 访问数据时重新渲染过多
- azure - 我们可以使用全局参数来创建 ADLS/DataBricks 链接服务吗