在做游戏开发的时候,很多游戏都会提供一个全球分数排名的的功能,这就需要使用服务器了,当然,你可以选择搭建自己的服务器,但从成本,稳定性和开发周期上看,我认为Google AppEngine是个很不错的选择,现在Google AppEngine关于Python的参考资料比较详尽,Java的就比较少,所以我把我写的小Demo放上来,做抛砖引玉之用,因为我也是初学者,所以demo一切从简,大侠请不要见笑哦!
Demo1:对象的存储:
步骤1.定义JavaBean:
- package com.ray.test;
-
- import java.util.Date;
- import javax.jdo.annotations.IdGeneratorStrategy;
- import javax.jdo.annotations.IdentityType;
- import javax.jdo.annotations.PersistenceCapable;
- import javax.jdo.annotations.Persistent;
- import javax.jdo.annotations.PrimaryKey;
-
-
- @PersistenceCapable(identityType = IdentityType.APPLICATION)
- public class Employee {
-
-
- @PrimaryKey
- @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
- private String firstName;
-
- @Persistent
- private String lastName;
-
- @Persistent
- private Date birthDate;
-
- public Employee(String firstName, String lastName, Date birthDate) {
- this.firstName = firstName;
- this.lastName = lastName;
- this.birthDate = birthDate;
- }
-
- public String getFirstName() {
- return firstName;
- }
- }
步骤2.存取Bean(可以写在Servlet的doGet()或者doPost()里面):
- package com.ray.test;
-
- import java.io.IOException;
- import java.util.Date;
- import javax.jdo.PersistenceManager;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- @SuppressWarnings("serial")
- public class HelloServlet extends HttpServlet {
- public void doGet(HttpServletRequest req,
- HttpServletResponse resp)throws IOException {
-
- resp.setContentType("text/plain");
-
- Employee e = new Employee("Alfred", "Smith", new Date());
-
- PersistenceManager pm = PMF.get().getPersistenceManager();
-
- try {
-
- resp.getWriter().println("saving object!");
- pm.makePersistent(e);
- }catch(Exception ex){
- resp.getWriter().println("cannot persistent!");
- ex.printStackTrace();
- }
- finally {
- pm.close();
- }
-
- try{
-
- pm = PMF.get().getPersistenceManager();
-
- Employee newE = pm.getObjectById(Employee.class, "Alfred");
-
- resp.getWriter().println("Employee:"+newE.getFirstName());
- }catch(Exception ex){
- ex.printStackTrace();
- resp.getWriter().println("cannot get data!");
- pm.close();
- }
- }
-
- @Override
- protected void doPost(HttpServletRequest req,
- HttpServletResponse resp)throws ServletException, IOException {
- this.doGet(req, resp);
- }
- }
其中PMF类的代码如下,没看错应该是个单例模式:
- package com.ray.test;
-
- import javax.jdo.JDOHelper;
- import javax.jdo.PersistenceManagerFactory;
-
- public final class PMF {
- private static final PersistenceManagerFactory pmfInstance =
- JDOHelper.getPersistenceManagerFactory("transactions-optional");
-
- private PMF() {}
-
- public static PersistenceManagerFactory get() {
- return pmfInstance;
- }
- }
Demo2.使用Google 账户认证服务:
- package com.ray.test;
-
- import java.io.IOException;
-
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import com.google.appengine.api.users.UserService;
- import com.google.appengine.api.users.UserServiceFactory;
-
- public class GoogleAccount extends HttpServlet{
-
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
-
- UserService userService = UserServiceFactory.getUserService();
-
- String thisURL = req.getRequestURI();
-
- if (req.getUserPrincipal() != <span
分享到:
相关推荐
《Android游戏开发:基于SurfaceView的坦克大战》 在Android平台上的游戏开发中,SurfaceView是一种常见的用于处理连续动画和游戏画面更新的视图组件。本项目“Android游戏(含服务器部分)”聚焦于利用SurfaceView...
本教程将深入探讨Android Socket编程的基本概念、客户端与服务器端的实现以及相关源码解析。 一、Socket基本概念 Socket,也被称为套接字,是网络通信中的一个重要接口,它为两台设备提供双向通信的通道。在Android...
在Android手机游戏开发中,服务器端扮演着至关重要的角色,它是连接客户端(即手机游戏应用)与游戏逻辑、数据存储的核心桥梁。本资源提供的是一个完整的Android手机游戏服务器端Server的源代码,对于理解游戏服务器...
在Android游戏开发中,3D游戏开发通常使用Java语言,因为它是Android SDK的主要编程语言。开发者可能利用了OpenGL ES(OpenGL for Embedded Systems)这一图形库,它是Android系统支持的用于2D和3D图形渲染的API。...
2.6.2 服务器端 57 2.6.3 客户端 58 2.7 蓝牙通信 59 2.7.1 蓝牙通信的基本知识 60 2.7.2 聊天案例概览 60 2.7.3 聊天案例的开发过程 62 2.8 本章小结 75 第3章 初识opengl es 2.0 77 3.1 ...
在本项目中,我们探索了如何使用Android设备作为客户端,通过Qt应用程序作为服务器端,实现远程控制个人计算机(PC)的功能。这个系统允许用户通过他们的Android手机执行一系列在PC上的操作,增强了移动设备的实用性...
"精通Android游戏开发"这个主题涵盖了从基础到高级的各类知识点,旨在帮助开发者构建高质量、高性能的游戏应用。Android游戏开发不仅涉及编程语言,如Java或Kotlin,还包括图形设计、物理模拟、音频处理等多个方面。...
《Android游戏开发宝典》是一本深度探讨Android游戏开发的专业书籍,其附带的光盘包含书中所有示例项目的源代码,这对于学习者来说是一份极其宝贵的资源。这份压缩包文件,名为“源代码”,正是这些示例项目的集合,...
在游戏开发中,服务器端的角色至关重要。它可能负责游戏状态的同步,确保多玩家之间的交互公平且一致。此外,服务器还可能存储和管理玩家数据,例如分数、成就等,以及处理游戏内的经济系统,如虚拟货币交易。 关于...
书籍深入探讨了Android游戏开发的关键技术,如Java或Kotlin语言的应用、Android SDK的使用、OpenGL ES图形渲染、游戏网络通信等,旨在帮助开发者掌握在Android平台上构建高性能游戏的方法。 ### Unity3D游戏开发 ...
在本项目中,"基于Android的网络游戏开发——易扑克网络...通过这个项目,开发者可以深入了解Android游戏开发的各个方面,从客户端到服务器端,从基础架构到用户体验,从网络通信到游戏逻辑,都是学习和实践的好机会。
在本文中,我们将深入探讨如何使用 Netty 4.0.31.Final 版本构建 Android 客户端和服务器端应用程序。 首先,Netty 提供了一种简化网络编程的方式,它通过非阻塞 I/O 和 Channel 抽象来处理并发连接。在 Android 上...
不过在这个项目中,JavaScript并未直接用于原生应用开发,而是可能被用作与服务器端交互或实现特定功能的辅助脚本。 在实际的项目开发过程中,开发者首先需要设计应用的架构。对于24点游戏,可能包含主界面、游戏...
在本文中,我们将深入探讨如何在Android平台上实现服务器端和客户端的Socket通讯,以及如何创建9999端口进行数据交互。 首先,我们需要理解Socket的基本概念。Socket在计算机网络中是一种进程间通信机制,它提供了...
游戏开发中客户端与服务器端数据的传输, URL url = new URL(path); //创建一个Url对象 //得到打开的链接对象 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //设置请求超时与请求...
《类大富翁的Android游戏开发详解》 在Android平台上,开发一款类大富翁的游戏是一种有趣且富有挑战性的实践。大富翁游戏的核心玩法包括掷骰子移动、购买地产、收取租金等,这些都需要通过编程来实现。下面,我们将...
本资料详细介绍了如何在Android平台上使用Socket进行网络编程,并通过具体的示例代码展示了聊天室的开发过程,包括服务器端和Android客户端的开发。 #### 二、服务器端程序开发 服务器端程序通常运行在一台PC机上...
Andjong是一款基于Android平台的开源麻将游戏,其源代码提供了丰富的学习资源,对于想要深入了解Android游戏开发,尤其是麻将类游戏开发的开发者来说,是一个不可多得的实践案例。这款项目由日本开发者贡献,尽管...
- 对战匹配、好友系统和实时聊天功能则需要服务器端的支持。 总之,分析并学习这款Android中国象棋游戏的源代码,不仅可以掌握Android开发的基本技术,还能深入了解游戏开发的算法设计和优化策略。无论是对于初学...