我目前正在使用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很明白這一點非常好。 :( –