【问题标题】:Guidelines for selecting ports for your application为您的应用程序选择端口的指南
【发布时间】:2011-04-22 12:39:48
【问题描述】:

我有一个应用程序在端口上侦听各种客户端服务器上脚本的信息。我需要决定应该分配给应用程序绑定的端口。我可以查看this list 并知道要分配哪些端口,但我对开发人员如何决定将端口分配给他们的应用程序感到困惑。它们只是随机的,还是有针对不同类型应用程序使用特定端口范围的指南?

【问题讨论】:

    标签: design-patterns sockets port


    【解决方案1】:

    基本上是随机的。从 IANA 列表中的未分配/私有范围之一中选择一个端口,并希望获得最好的结果。

    您可能想询问服务器和网络管理员是否有他们希望您使用的端口,因为他们可能需要配置防火墙/路由器/等。 (他们甚至可能知道正在使用哪些端口,并且能够为您提供有关可用端口的明确答案,但这是不典型的。)

    如果您的应用程序无法打开端口进行侦听,那么您需要确保有人会看到错误消息。这可能意味着其他东西正在使用该端口,因此您需要解决冲突。同样,如果客户端连接到该端口上的某些东西并返回“奇怪”的输出,请确保以适当的方式报告错误。

    并且不要将此端口号硬编码到您的任何应用程序中。通过命令行选项、配置文件、环境变量等使其可配置。如果您很难更改,那么您肯定需要更改它。

    【讨论】:

      【解决方案2】:

      你的主要目标是获得一个不常用的,除此之外,选择你喜欢的东西。

      我有时会发挥创意,并找到一种方法来计算对应用的有意义但晦涩的引用。通常我会将应用程序名称中的字符转换为 ascii 值,将它们相加,然后根据可能的值乘以另一个数字,使其进入 1024-65000 范围。

      【讨论】:

      • 吻我说。闭上你的眼睛,选择你想象的第一个数字;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多