联网游戏中客户端和服务器端的变量如何传递?
联网游戏中客户端和服务器端的变量如何传递?
j2me手机游戏中。
------解决方案--------------------http + xml
------解决方案--------------------确实不懂~变量传递可以通过的网络传啊,规则可以自己设置也可以用xml
------解决方案--------------------自己约定数据格式,或者组装成XML让服务端去解析
------解决方案--------------------客户端和服务端传char数组,自己定义所传每一位的含义.
------解决方案--------------------设计网络协议格式,客户端发送,服务器端解析
------解决方案--------------------转。。。
在CLDC中并没有对序列化机制进行支持,但是这并不影响我们在J2ME联网或者RMS操作中使用这种有效的机制,本文将讲述如何采用序列化机制进行J2ME联网。
如果读者对TOMCAT的使用和Java IO还不熟悉那么请参考如下两篇文章,作为本文的准备。Java的基本数据类型与流,Tomcat入门指南。我们要编写一个用户注册的应用程序,用户填写自己的信息然后通过联网把数据发送到服务器,在Server端我们用Servlet来接收用户的数据。这样有一个好处就是当我们需要修改用户注册的选项的时候,比如添加一个选项,我们不需要修改程序的联网部分,只需要修改用户类的序列化和反序列化方法就可以了。下面看看我们的Account类,它是对用户的注册信息进行封装,并提供了两个重要的方法serialize()和deserialize()。
package com.j2medev.mingjava;
import java.io.*;
public class Account
{
private String userName = " ";
private String email = " ";
private int age = 0;
private boolean gender = false;
public Account()
{
}
public Account(String userName, String email, int age, boolean gender)
{
this.userName = userName;
this.email = email;
this.age = age;
this.gender = gender;
}
public void serialize(DataOutputStream dos) throws
IOException {
dos.writeUTF(userName);
dos.writeUTF(email);
dos.writeInt(age);
dos.writeBoolean(gender);
}
public static Account deserialize(DataInputStream dis) throws IOException
{
Account account = new Account();
account.userName = dis.readUTF();
account.email = dis.readUTF();
account.age = dis.readInt();
account.gender = dis.readBoolean();
return account;
}
public String toString()
{
return "UserName = " + userName + " Email = " + email + " age = " + age
+ " gender = " + (gender ? "male " : "female ");
}
}