日期:2014-05-20  浏览次数:20813 次

联网游戏中客户端和服务器端的变量如何传递?
联网游戏中客户端和服务器端的变量如何传递?
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 ");
}
}