2010-11-30 54 views
1

我有一个2维数组通过套接字发送 客户端被实现为具有2个线程,一个用于渲染摆动GUI,另一个用于接收来自服务器的数据。使用Java发送一个数组通过套接字

服务器实现为使得它有2个线程,一个用于收听传入请求,然后把该请求到另一个线程来处理请求(与客户机通信)

一旦客户端与摆动GUI交互,数据将被构造并发送到服务器(实际上,发送到负责处理特定客户端的线程),然后服务器处理数据并且以二维阵列向客户端发送具有二维数组的新数据,其中更新的信息。客户端可以使用该数组来呈现视图。

但是,当客户端第一次发送数据时,它可以,一切都很好。但下一次,客户端发送新的数据,但它仍然收到旧的(服务器数据仍在更新)

我不知道问题是与套接字本身或线程。

+0

这是对您要完成的内容的一个非常广泛的概述,但不包括您的实现细节,最可能存在此错误的位置。值得注意的是,有很多不同的方式来完成你所要求的,从Java特定的机制,如对象序列化到基于XML的解决方案,如REST和Web服务。包含在客户端和服务器端执行数据发送和更新的代码将是谨慎的。 – SplinterReality 2010-11-30 06:14:18

回答

2

如果您使用序列化,请参阅Javadoc for ObjectOutputStream.reset()和ObjectOutputStream.writeUnshared()。

+0

我修改了使用readUnshared()和writeUnshared()发送数据,现在所有的问题都消失了。 – 2010-11-30 06:49:07