我目前正在使用Java进行游戏。我将在游戏本身创建一个启动程序,并用一些.exe包装包装它。我需要帮助的是让游戏连接到某种服务器,并检查用户的凭据是否为真:如何将服务器与Java游戏启动器互连?
- 用户名是REAL。
- 用用户名列出的密码匹配。
- 用户已购买游戏(对/错)AKA是用户溢价?
它与使用PHP和HTML网站的工作。当用户创建一个账户时,它将被存储在网站和游戏服务器本身中。另外,如果游戏有更新,它会通过从服务器获取文件自动更新自身。
的概念是相当类同游戏一样,我的世界和星际2
我目前正在使用Java进行游戏。我将在游戏本身创建一个启动程序,并用一些.exe包装包装它。我需要帮助的是让游戏连接到某种服务器,并检查用户的凭据是否为真:如何将服务器与Java游戏启动器互连?
它与使用PHP和HTML网站的工作。当用户创建一个账户时,它将被存储在网站和游戏服务器本身中。另外,如果游戏有更新,它会通过从服务器获取文件自动更新自身。
的概念是相当类同游戏一样,我的世界和星际2
根据不同的复杂性,或者您需要交互的水平,这可能是与为使您的Web服务器上的GET请求到特定的页面,并在查询字符串提供必要的信息(或者你可以简单的东西做使用POST)。
// Construct the query string with the proper username and password
URL url = new URL("http://www.yoursite.com/verify.php?username=happy&password=pants");
try (BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()))) {
StringBuilder sb = new StringBuilder();
for (String s; (s = in.readLine()) != null;)
sb.append(s);
switch (sb.toString().trim()) {
case "welcome":
JOptionPane.showMessageDialog(null, "Welcome!");
// Proceed to game
break;
case "shut up and pay me":
JOptionPane.showMessageDialog(null, "You owe me money first!");
break;
case "no such user":
JOptionPane.showMessageDialog(null, "Go away!");
// Recursively delete all their files...
break;
}
}
凡verify.php有一些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),并高于一切你不应该存储或纯文本或者(即,散列通密码它首先使用MD5,SHA1或您选择的其他散列)。为了简单起见,我只做了这个。
对于任何更复杂,你可能会需要你已经被赋予了其他的方法,如使用的sockets,web services一个等
如果您想与URL中的详细信息Java,可以找到here。或者如果你想了解更多关于PHP Mysqli的信息,你可以得到here,或者用你自己的软件包替代PEAR。
你可以建立一个PHP Web服务并建立一个Java Web服务客户端。使用休息也是一种选择。
你可以建立一个PHP套接字服务器,并连接到插座。
你可以建立一个PHP页面和一个Java的HttpClient。
我会确保它是某种加密。
因为我几乎还处于规划一个小白,我do't很明白这一点非常好。 :( –