2010-11-30 21 views
1

私はソケットを介して送信する2次元配列を持っています クライアントは2つのスレッド、1つはスイングGUIを描画するため、もう1つはサーバからデータを受信するように実装されています。Javaソケットで配列を送信する

サーバーは2つのスレッド、着信要求を聴くための1つを持つように実装され、その後、(クライアントとの通信)のリクエストを処理するために別のスレッドにリクエストを入れて

クライアントは、スイングのGUIと対話したら、データが構築され、サーバに送信される(実際には、特定のクライアントの処理を担当しているスレッドに送信する)、サーバは、データを処理して2次元配列で新しいデータをクライアントに送り返します更新された情報。クライアントは配列を使用してビューをレンダリングできます。

しかし、クライアントがデータを送信するときに初めて、それは大丈夫、すべてが正常です。しかし

私は問題はソケット自体またはスレッドにあるのか知らない(サーバーのデータがまだ更新されて)次回、クライアントが新しいデータを送信するが、それはまだ古いものを受け取ります。

+0

これは、あなたが達成しようとしているものの非常に広い概観ですが、このエラーはほとんどの場合存在するあなたの実装の詳細を、含まれていません。オブジェクトシリアライゼーションのようなJava固有のメカニズムから、RESTやWebサービスなどのXMLベースのソリューションまで、あなたが求めていることを達成するためのさまざまな方法がたくさんあることは注目に値します。クライアントとサーバー側でデータの送信および更新を実行するコードを含めることが賢明でしょう。 – SplinterReality

答えて

2

シリアライゼーションを使用している場合は、ObjectOutputStream.reset()およびObjectOutputStream.writeUnshared()のJavadocを参照してください。

+0

私はreadUnshared()とwriteUnshared()でデータを送信するように変更しましたが、すべての問題が解消されました。 –

関連する問題