如何用Java将服务器与游戏启动器互连?

如何用Java将服务器与游戏启动器互连?,java,php,Java,Php,我目前正在用Java开发一个游戏。我将创建一个发射器与游戏本身和包装它与一些.exe包装。我需要的帮助是让游戏连接到某种服务器,并检查用户的凭据是否正确: 用户名是真实的 密码与用户名中列出的密码匹配 用户已购买游戏(对/错)AKA是用户溢价吗 它必须与使用PHP和HTML的网站协同工作。当用户创建帐户时,它会存储在网站和游戏服务器本身中。此外,如果游戏有更新,它会通过从服务器获取文件自动更新自身 这个概念与Minecraft和Planetside 2等游戏非常相似。您可以构建一个php web

我目前正在用Java开发一个游戏。我将创建一个发射器与游戏本身和包装它与一些.exe包装。我需要的帮助是让游戏连接到某种服务器,并检查用户的凭据是否正确:

  • 用户名是真实的
  • 密码与用户名中列出的密码匹配
  • 用户已购买游戏(对/错)AKA是用户溢价吗
  • 它必须与使用PHP和HTML的网站协同工作。当用户创建帐户时,它会存储在网站和游戏服务器本身中。此外,如果游戏有更新,它会通过从服务器获取文件自动更新自身


    这个概念与Minecraft和Planetside 2等游戏非常相似。

    您可以构建一个php web服务和一个java web服务客户端。使用rest也是一种选择

    您可以构建一个php套接字服务器并连接到该套接字

    您可以构建一个php页面和一个java httpclient


    我会确保以某种方式对其进行加密。

    根据您需要的复杂程度或交互级别,可以通过向web服务器上的特定页面发出GET请求,并在查询字符串中提供必要的信息(也可以使用POST)这样简单的方法来完成

    其中verify.php有一些类似于

    // Set up database stuff...
    
    // Query the database
    $query = sprintf("SELECT * FROM friends users WHERE username='%s' AND password='%s'",
             mysqli_real_escape_string($_GET["username"]),
             mysqli_real_escape_string($_GET["password"]));
    
    if (($result = mysqli_query($query)) && ($row = mysqli_fetch_assoc($result))) {
        if ($row["license"] == "premium") {
            echo "welcome";
        } else {
            echo "shut up and pay me";
        }
    } else {
        echo "no such user";
    }
    
    但这只是一个非常基本的例子,说明了你可以做什么,不应该一字不差地跟着做。您可能不应该通过URL的查询字符串传递这些值(可能更喜欢POST而不是GET here),而且最重要的是您也不应该以纯文本形式存储或传递密码(即,首先使用SHA1或您选择的另一个散列对其进行散列)。我这样做只是为了简单

    对于任何更复杂的问题,您可能需要其他方法中的一种,例如使用等


    如果您想了解有关在Java中使用URL的更多信息,可以在下面找到。或者,如果您想了解有关PHP的Mysqli的更多信息,您可以获取这些信息,或者用您自己选择的软件包(如PEAR)代替。

    因为我实际上还是编程方面的新手,所以我对这一点不太了解(
    // Set up database stuff...
    
    // Query the database
    $query = sprintf("SELECT * FROM friends users WHERE username='%s' AND password='%s'",
             mysqli_real_escape_string($_GET["username"]),
             mysqli_real_escape_string($_GET["password"]));
    
    if (($result = mysqli_query($query)) && ($row = mysqli_fetch_assoc($result))) {
        if ($row["license"] == "premium") {
            echo "welcome";
        } else {
            echo "shut up and pay me";
        }
    } else {
        echo "no such user";
    }