0

我有一个我目前正在测试的应用程序,它在端口 1025 上侦听网络上的请求。我任意选择了这个端口并且很容易更改,我担心我的应用程序会与侦听该端口的其他系统进程发生冲突。我的两个主要问题如下:

  1. 是否有使用端口 1025 的常见系统进程可能与我的应用程序冲突?
  2. 假设 1) 的答案是肯定的,我的应用程序可以安全使用的另一个不太常用的端口或端口范围是什么?
4

2 回答 2

1

49152 – 65535范围内的任何端口都不能被任何公司注册,因此您更有可能不会遇到任何端口冲突问题。

可以在此处的此维基百科链接中找到已注册端口等的列表。

如果您不喜欢 Wikipedia,请查看来自 Internet Assigned Numbers Authority (IANA) 的此链接。

于 2012-05-14T17:10:21.887 回答
0

在大多数情况下都会这样做。例如,如果您需要在同一 IP 地址上运行应用程序的多个实例(侦听器),仍然会发生端口冲突。为了克服这种情况,您可以选择将您的套接字绑定到端口 0(= 任何端口),让系统为您分配端口号。然后,您可以使用 getsockname()(BSD 套接字 API)或等效项来获取系统为套接字分配的实际端口号。它的缺点显然是端口号每次都会改变。需要有一种方法来告诉(手动、编程或系统地)它的监听端口到连接器。事实上,许多 VoIP/点对点应用程序在“集合”服务器的帮助下以这种方式工作。

于 2012-05-17T06:39:30.013 回答