首页 > 解决方案 > Android - 源端口 800 的 DatagramSocket 未发送

问题描述

我有一个小工具,可以将 UDP 数据包从端口 800(Android)发送到端口 804 上的 PC(Windows),所以我使用 DatagramSocket(800),它只是不起作用,而(几乎)所有其他端口都工作(通常是 4 位端口)所以我想知道Android上是否保留了800(我尝试了netstat并且无法使用端口800找到一些东西)以及是否有任何解决方法(除了Rooting)。我不能真正改变端口,因为它们是固定的,所以它要么 800->804 要么什么都不起作用!

先感谢您。

标签: javaandroidsockets

解决方案


在 Linux 上,您必须拥有 root 权限才能绑定到低于 1024 的端口。除非您能够提升您的应用程序权限并充当 root(至少在绑定时,您以后可以像大多数用户一样回退到普通用户)使用“较低”端口的软件),您必须选择其他端口才能成功。这就是您的“4 位端口号”测试有效的原因(即 1000 会失败 :),而 800 则不会。


推荐阅读