为您的应用程序选择端口的准则

时间:2011-04-22 12:39:49

标签: design-patterns sockets port

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:0)

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

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