2009-12-01 120 views
0

首先我知道坐标可能是错误的术语?我假设我只是传递x和y变量,但坐标更好地描述了我的感受。将坐标从java客户端传递到java服务器

现在我需要一个服务器,可以由2个客户端访问,这是一个赛车游戏,它需要每个客户端能够同时操纵赛车,每个使用不同的控制方案,但这不是在那里也不在那里。

我希望有人能够协助我发送赛车的x和y位置到服务器,并让服务器将它们发送到下一个运动员,反之亦然,以使两个赛车运动在同时在每个客户端窗口上。到目前为止,我只做过简单的服务器工作,比如sun网站上的knock knock服务器,以及一个简单的echo服务器,它重复发送给服务器的字符串。

当我尝试使用int而不是字符串时,我收到一个错误,我想通过的int是动态的(显然随每个移动而改变),并且不能作为静态(使用readInt和writeInt)传递。

因此,任何帮助如何通过服务器在两个客户端窗口上创建想要的运动,将不胜感激。

感谢

回答

0

一个简单的解决方案是使用ObjectOutputStreamserializable objects

class Coordinates implements Serializable{...} 

ObjectOutputStream out = new ObjectOutputStream(...); 
out.writeObject(new Coordinates(...)); 
+0

谢谢:)对可序列化对象的研究产生了一些很好的结果。 –

0

克雷格,你靠近。动态/静态是一个误解,这与你的赛车游戏或价值观变化无关。只是,你不能反序列化的字段,被声明为static(或瞬态),因为它说,在Javadoc文档的ObjectInputStream:声明为瞬态或静态

字段由反序列化过程中忽略。

该解决方案(希望)很简单:从x/y整数中删除static修饰符,这应该可以解决问题。顺便说一句 - 如果你的字符串是静态的,它将会以完全相同的方式失败。

+0

感谢您的建议,不幸的是在main中调用了整数,并且在运行时移除静态的原因导致无法找到主要的方法。我认为上面提到的可序列化对象是我需要的正确轨道。不过谢谢。 –

相关问题