2012-02-14 16 views
3

サーバーに送信する必要があるデータを処理する最善の方法は何ですか?私はマルチスレッドクライアントを持っている、すべてのスレッドには、サーバーに送信する必要があるデータがあります。しかし、私がサーバーを起動すると、同時に送信されるパケットがいくつか存在します。そのため、その時点ではデータが正しくありません。データクライアントサーバーを送信する最も良い方法

私は、x msごとにサーバーに送信されるスタックを作ることを考えました。これを行うには良い方法ですか?

答えて

3

メッセージキュー構造を使用できます。サーバーには1つのキューしかなく、メッセージがキューに到着するたびにキューの最後に追加されるたびに、メッセージも順序付けされた時点で送信されます。その後、メッセージをデキューしてキュー内のメッセージを処理します。多くのオープンソースのメッセージキュー構造がありますので、最初から実装する必要はありません。 この構造でサーバーにデータを送信するまでにx秒間待つ必要はありません。これはあなたのシステムをより速くします。

希望します。

2

クライアントスレッドごとに1つのソケットを開きます。こうすることで、サーバーはどのスレッドから別のものになり、すべてが順番に保持されます。

+0

私はすでにそれを持っていますが、問題はクライアントマルチスレッドです。それで、一度に複数の行を送信します。 – Laurence

+0

しかし、すべてのスレッドは一度に1行しか送信しないので、ソケットを別々にしておくと、すべてのスレッドが順番に処理されます。何か不足していますか? –

+0

申し訳ありませんが、私はあなたの答えを間違って読んでいます。あなたは乗っています。それは確かに可能です。しかし、クライアント用に1つのソケットを使用するのは簡単ではありませんか? – Laurence

関連する問題