Silverlight 同一端口上的多个套接字与多个端口上的多个套接字

Silverlight 同一端口上的多个套接字与多个端口上的多个套接字,silverlight,sockets,Silverlight,Sockets,在提问之前,让我先解释一下我的情况。 我正在创建17款不同的多人游戏,可以直接从浏览器在线玩。 为此,我选择了Silverlight。 通信将使用套接字完成。 图17不同类型的游戏,如国际象棋、西洋双陆棋、游泳池和数百名在线用户使用绑定到相同端口号的套接字在客户端应用程序和服务器应用程序之间进行通信。 如果每种不同类型的游戏都使用另一个端口号,那么(对于我的服务器)不会更快吗?国际象棋将使用4502,西洋双陆棋将使用4503,游泳池使用4504。 这会有所不同吗?或者我应该在所有游戏中使用相同的

在提问之前,让我先解释一下我的情况。

我正在创建17款不同的多人游戏,可以直接从浏览器在线玩。
为此,我选择了Silverlight。
通信将使用套接字完成。

图17不同类型的游戏,如国际象棋、西洋双陆棋、游泳池和数百名在线用户使用绑定到相同端口号的套接字在客户端应用程序和服务器应用程序之间进行通信。

如果每种不同类型的游戏都使用另一个端口号,那么(对于我的服务器)不会更快吗?国际象棋将使用4502,西洋双陆棋将使用4503,游泳池使用4504。

这会有所不同吗?或者我应该在所有游戏中使用相同的端口号4502,而不用担心会发生不好的事情吗?

已建立为服务器的套接字可以接受来自多个客户端的连接请求。原始服务器套接字不会成为连接的一部分。accept方法生成一个新套接字,该套接字参与连接并返回该套接字。服务器的原始套接字仍可用于侦听进一步的连接请求


因此,使用不同的服务器端口没有任何优势。在所有web服务器都在端口80上收到所有请求后,并能很好地处理这些请求。

就服务器上的处理速度而言,无论您是在一个套接字上还是在17个套接字上接收所有通信,都很可能没有多大区别。由于您的服务器应用程序可能有更少的线程可供切换,因此单套接字方法将稍微快一点。然而,还有其他一些事情会有更高的开销,例如实际处理游戏动作或授权客户请求等


至于是否使用一个或多个套接字的问题,您应该考虑的最大问题是部署约束。Silverlight允许使用非标准(即不是80或443)的TCP端口号,如果您的客户端和服务器之间有防火墙或代理,您最好只使用一个端口,以简化防火墙上的访问控制列表。

新套接字是否位于其他端口上?