【发布时间】:2013-07-09 04:28:03
【问题描述】:
我写了一个小 Haskell 网络示例,但我不知道应该使用哪个端口。
在我找到的 IETF 论文或 Wikipedia's list of port numbers 中找不到示例端口号,但编程社区中可能有一个通用端口号。
【问题讨论】:
-
不。只需选择介于 1024 和很多之间的东西即可。
标签: networking port
我写了一个小 Haskell 网络示例,但我不知道应该使用哪个端口。
在我找到的 IETF 论文或 Wikipedia's list of port numbers 中找不到示例端口号,但编程社区中可能有一个通用端口号。
【问题讨论】:
标签: networking port
端口的有效数字(无论编程语言如何)为:0 到 2^16-1 = 0 到 65535
那是因为端口号是 16 位长度的。
但是端口分为:
知名端口:0到1023(用于系统服务,例如HTTP、FTP、SSH、DHCP ...)
注册/用户端口:1024 到 49151(您可以将它用于您的服务器,但要小心一些著名的应用程序:如 Microsoft SQL Server 数据库管理系统(MSSQL)服务器或 Apache Derby Network Server 已经在此范围内即不建议将 MSSQL 的端口分配给您的服务器,否则如果 MSSQL 正在运行,那么您的服务器很可能由于端口冲突而无法运行)
动态/私有端口:49152 到 65535 .(不用于服务器,而是用于客户端,例如在 NATing 服务中)
在编程中你可以为你的服务器使用 0 到 65535 之间的任意数字,但是你应该坚持上面提到的范围,否则某些系统服务或某些应用程序将因为端口冲突而无法运行。
在此处查看大多数端口的列表:https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
【讨论】:
1024以上65535以下且没有被你电脑使用过的端口都可以,选择你喜欢的就行。通常一些网络框架使用8000或8888。
【讨论】:
除非您真的需要静态固定端口,否则最好让操作系统为您选择一个可用的随机端口,然后您可以显示/发布选择的实际端口,以便让您的客户知道要连接到哪个端口.
【讨论】: