我可以将TcpClient从一台服务器传递到另一台服务器吗
本文关键字:一台 服务器 我可以 TcpClient | 更新日期: 2023-09-27 18:00:11
所以基本上我正在创建一个在线游戏。我有一个保存所有用户名/密码信息的服务器(登录服务器),然后是一个或多个托管游戏的服务器(游戏服务器)。客户端连接到登录服务器,登录服务器验证他们的凭据,检查他们所在的游戏服务器,然后告诉该服务器连接到客户端。
我对安全性知之甚少,但我认为让客户端监听来自游戏服务器的连接会更安全,而不是让游戏服务器监听客户端。我认为这至少会使DDoS攻击更容易预防。
问题是,我读到过,如果你的服务器在某些类型的路由器或负载均衡器后面,你将无法轻松获得客户端的ip。我需要登录服务器告诉游戏服务器该连接到谁…除非我可以转移一个开放的连接。我相信某些游戏有服务器集群,可以让客户端在一个或另一个服务器之间浮动,所以我认为以某种方式可以将连接从一个服务器传递到另一个。这通常是如何做到的?
也许我太远了?
为了避免DDoS,一种可能的解决方案是login server
连接到game server
并要求其打开端口,然后game server
可以返回随机port number
,login server
可以将其发送到client
。
假设client
有一分钟的时间连接到随机分配的端口,然后game server
才能关闭该端口
只是个主意。
Client connects to Login Server:Standard Port
Login Server connects to Game Server:Standard Port
Game Server sends Random Port to Login Server
Login Server sends Random Port to Client
Client connects to Game Server:Random Port
你不能像你想象的那样传输连接,你基本上必须告诉客户端创建另一个到新服务器的连接。
你可以用某种传输命令来响应客户端,该命令说明你希望他们连接到的新游戏服务器IP和端口。它可以连接到新服务器并断开与现有服务器的连接。