Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 区分同一台计算机上的多个客户端_Java_Sockets_Networking - Fatal编程技术网

Java 区分同一台计算机上的多个客户端

Java 区分同一台计算机上的多个客户端,java,sockets,networking,Java,Sockets,Networking,在过去的一年里,我一直在积极开发一个名为NitroNet的软件,我希望了解如何安全地区分连接到同一台机器上的服务器的多个客户端(套接字) 我一直在使用Java开发这个库,目前我已经将它用于区分使用客户端UDP端口作为唯一标识符的客户端。这很好,但我不相信这是真正区分它们的最安全的方法。所以我想知道,有没有更好更安全的方法来真正区分它们 当我说我需要“区分它们”时,我的意思是当从服务器端的客户端接收到数据包时,我需要能够仅使用套接字中的信息在服务器端获得相应的连接实例。我不希望在实际的客户端上存储

在过去的一年里,我一直在积极开发一个名为NitroNet的软件,我希望了解如何安全地区分连接到同一台机器上的服务器的多个客户端(套接字)

我一直在使用Java开发这个库,目前我已经将它用于区分使用客户端UDP端口作为唯一标识符的客户端。这很好,但我不相信这是真正区分它们的最安全的方法。所以我想知道,有没有更好更安全的方法来真正区分它们


当我说我需要“区分它们”时,我的意思是当从服务器端的客户端接收到数据包时,我需要能够仅使用套接字中的信息在服务器端获得相应的连接实例。我不希望在实际的客户端上存储任何ID号,因为我担心反向工程和手动更改ID。如果您有任何想法或建议,我将不胜感激。

当客户端首次连接时,请让初始服务器响应包含使用UDP端口和建立连接的时间构建的哈希。这样您就知道它是同一个客户端,因为两个客户端不能在同一端口上同时连接


这并不能解决对逆向工程的恐惧,除非你能保证你的服务器,以及散列构建算法的安全。但是,即使这一点被破坏,UDP端口也将保持不变,使您保持与当前相同的安全级别。

我正在考虑创建类似的令牌/票证系统,我认为这确实是唯一好的选择。我会试试的,谢谢你的建议。