使用一个端口,而在具有许多客户端的服务器中使用多个端口?

问题描述 投票:0回答:1

我正在用C#编写服务器代码,我认为用一个端口为所有客户端(例如我梦中的数百万)提供服务是好的(甚至是可能的),或者最好使用1000个端口并使用每个客户端使用较少的端口或随机端口!对性能有什么影响?

c# sockets tcp udp socketasynceventargs
1个回答
0
投票

通常以错误的方式为不同的客户端使用多个端口。

端口是有限的资源,因此您需要照此进行管理。最多有65,535个端口,您只能使用1024和49,151之间的端口。参见https://en.wikipedia.org/wiki/Registered_port

从管理的角度看,他们也不是没有开销。考虑一下防火墙,代理,负载平衡器,路由等。如果您的应用程序使用多个端口,则需要为这些类型的应用程序配置所有这些端口(这也增加了安全风险),并可能与其他应用程序发生冲突碰巧使用特定服务器上的相同端口。

此外,端口根本不是性能限制。

如果遇到性能瓶颈,那么您需要更改代码或使用负载平衡器将负载分配到同一主机或多个主机上的应用程序的多个实例。

如果您考虑一下,世界上所有的Web服务器都使用端口80(至少在外部)。因此,如果Google搜索,Facebook,Instagram等可以在单个端口上处理此类负载,那么我相信您的简单应用程序也可以管理此负载!

您可以将不同的端口用于不同的目的,包括不同的协议,这是公认的惯例。

© www.soinside.com 2019 - 2024. All rights reserved.