我首先要说的是,目前我的服务器是根据发送者IP(即客户端的IP)进行识别的。
现在我正在编写一个游戏服务器(仅供练习),这让我思考如何唯一地标识位于同一 IP 上的客户端。 (两个玩家在同一台机器/同一网络上打开连接,因此向外的 IP 是相同的)。
我已经在谷歌、此处和 gamedev.net 上搜索了答案,但无法找到我正在寻找的内容,可能是因为我不知道要查询的正确术语。
任何有关这方面的指导将不胜感激,特别是在效率和最佳实践方面。
谢谢。
与 UDP 相关的所有内容中都没有“连接”术语,但启动 UDP 套接字的应用程序在一段时间内保持相同的源端口是很常见的,因此您可以通过源 IP 端口来识别它。
有一些与维护 NAT 路由器内的客户端(在 NAT-UDP 中,客户端是第一个向另一台主机发送 UDP 数据报并触发新的连接跟踪条目的主机)和服务器之间的通信相关的内容。
此“连接跟踪”仅用于允许从外部到内部的流量,建立“时间”关系(有超时),有时可能不再使用(仅一次)。
如果服务器在传出数据报中不使用与传入数据报中的源端口相同的目标端口,则路由器不会将数据报发送到 NAT 内的主机。
致以诚挚的问候。