【问题标题】:Android ServerSocket Port SelectionAndroid ServerSocket 端口选择
【发布时间】:2023-10-10 00:46:01
【问题描述】:

我试图弄清楚 Android 操作系统如何通过 ServerSocket 构造函数分配端口。

链接: http://developer.android.com/reference/java/net/ServerSocket.html

具体来说,使用第二个构造函数,文档声称“如果端口 == 0,则操作系统将分配一个端口。”有谁知道这个端口是如何由 Android 操作系统分配的?根据在 Android 终端上运行大量 netstat -a 命令,这似乎是随机选择。

谁能证实这一点?我想知道当为此参数输入 0 时会发生什么。

提前致谢!

【问题讨论】:

标签: java android sockets port serversocket


【解决方案1】:

根据java documentation

端口号为 0 表示端口号自动 分配,通常来自临时端口范围。

Android documentation 建议 OS 为您选择端口:

如果端口 == 0,则操作系统将分配一个端口

基本上它会选择一个随机的free端口。

一些额外的:This site,其中包含使用它的端口和服务的列表。

【讨论】:

  • 它将选择一个尚未使用的随机端口。没有什么“开放”的。
  • @EJP 是的,我的错。应该免费写。