Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道中央服务器如何连接两个设备。我假设当设备应用程序启动时,它应该向服务器注册其 IP 地址和其他相关信息(用户名)。当它想要连接到另一台设备时,它应该寻找服务器上另一台设备的地址,可能带有一个 get 请求。然后设置一个连接到一个套接字。如果设备应用程序关闭,它应该从服务器注销。这个对吗?
这是非常正确的。
因为一个或两个设备可能在防火墙后面(包括 NAT),你必须假设它们实际上不能直接相互连接,所以一旦你打开另一个设备的套接字就不会那么简单了找出它的注册地址。您要么必须尝试防火墙穿越技术(通常使用 UDP 会成功,但使用 TCP 不会),或者有一个不在防火墙后面的助手(可能与注册服务器或其他东西相同)携带所有希望通信的设备之间的数据。
此外,您将希望注册服务器超时注册并且客户端定期刷新它们,因为当客户端终止或失去对网络的访问时,它们并不总是有机会在服务器上注销自己。