我花了一些时间学习Java,并在学习过程中构建了一个相当复杂的游戏。我的游戏是一个桌面运行的swing应用程序,它会在播放后得到一个得分值,然后输入到主板上。游戏很完整,除了一些安全机制。
起初,我从来没有打算让我的游戏连接到网络上,因为‘网络’这个词总是让我望而却步。现在我的游戏发展得很慢,结果比我想象的要好得多,这让我的手臂扭曲了,想要学习如何进行网络交流。
在对这个主题进行了大量的研究之后,我决定看看套接字,并为自己构建一个简单的客户机/套接字服务器。这两个程序都连接在我的本地机器上,这台机器买了我在这里。
我已经知道,允许客户端将分数发送到服务器总是容易受到欺骗,但最初这个游戏从来没有打算在网上张贴分数。相反,我决定让我的游戏代码变得如此不可读和混乱,以至于欺骗/破解别人的程序可能会更容易。(一厢情愿的想法)
这个游戏只是一个学习曲线,所以在我眼里滥用分数系统只会起到教学的作用。
我的问题可能看起来很傻,但它只是想得到一个更充分的理解。
我想使用一个套接字发送一个数字,比如说2371从我的桌面游戏到一个托管在随机send服务器上的java服务器。然后,我想让java服务器找到这个玩家得分(2371)的位置,然后在网站排名板上打印分数。
它真的像调整代码URL,然后上传socketServer代码到网站托管空间那样简单吗?
如果是的话,我在上传什么..java文件,还是其他文件?
我也在我的研究中读过很多次,很多网站主机不允许用开放端口上传java文件。这是正确的吗?
非常感谢各位,这是一个我一直回避的问题,所以所有的和任何建议都将不胜感激。
发布于 2014-07-24 13:48:57
您需要的是在internet上运行一个进程( Java服务器应用程序)的计算机,您的Java客户端应用程序可以连接到该进程。因此,您可以上传文件(可能是jar或某些类文件),并通过运行进程所需的任何接口告诉服务器。然后,这个服务器应用程序可以保存每个人的分数,并将其保存到磁盘和您需要的其他任何东西中。
我也在我的研究中读过很多次,很多网站主机不允许用开放端口上传java文件。这是正确的吗?
这是正确的。你需要租一台服务器(如果你自己没有一台可以连接到自己的互联网上的服务器),一个简单的网络托管公司将不允许你承载你自己的运行过程。
相反,我决定让我的游戏代码变得如此不可读和混乱,以至于欺骗/破解别人的程序可能会更容易。(一厢情愿的想法)
我不确定这是否是一个玩笑,但是有一些源代码混淆器,比如ProGuard,它就是这样做的。
如果你真的想防止人们简单地用他们自己修改过的客户端把分数写到服务器上,那么你必须让服务器进程本身处理游戏的一些逻辑。当然,有些人仍然可以更进一步,创建一个机器人,或者任何他们需要的东西来作弊,并把他们的假分数列出来。
https://stackoverflow.com/questions/24935243
复制相似问题