• ベストアンサー

winsockを使った通信方法

winsockを使った通信でサーバークライアント方式の通信プログラムで クライアントプログラムがサーバープログラムに接続して、 クライアントプログラムで移動あった時のみ サーバーに現在の位置情報を送信し、サーバープログラムが他の参加者に 送信するという通信方式で通信を行っています。 この方法だと接続者が複数人の場合、一人だけ移動していると普通に通信でき位置情報の更新 も出来るのですが、 同時に移動が起こると、モデルが勝手に移動してクライアントプログラムに触れなくなってしまいます。 これを避けるにはどうしたらいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「同時に移動が起こると、モデルが勝手に移動してクライアントプログラムに触れなくなってしまいます」も意味がよくわからないんだよね. 「同時に移動が起こる」とか「クライアントプログラムに触れる」とかってどういうことだろう.

who_ray_sis
質問者

補足

http://dixq.net/forum/viewtopic.php?f=3&t=13815 こちらでも同じ質問をしています。 うまく説明出来なくて申し訳ないです。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

ぶっちゃけた話私には答える能力はないのですが (<「だったら書くな」という意見もあろうが), それはさておき. まず, あなたのプログラムでは「複数のクライアントのうち 1つがある物体を動かしたら, サーバがクライアントに通知することにより全てのクライアントでその動きをする」ということでいいですか? もしそうだとしたら, 「複数のクライアントが同じ物体を同時に動かす」ときにどのような動作を期待しているのですか? 単純に, クライアント側で「サーバからの移動情報があったら強制的に操作をキャンセルする」のではダメなのですか?

who_ray_sis
質問者

補足

それも試して見たんですが、うまくいかなかったのですが マルチスレッド方式でやるとうまくいきました

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>こちらでも同じ質問をしています。 リンク先でも説明できていないみたいですけど・・・

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

>同時に移動が起こると、モデルが勝手に移動してクライアントプログラムに触れなくなってしまいます。 「モデル」って何ですか?

who_ray_sis
質問者

補足

すいません。書くのを忘れていました。3Dのモデルの座標を やりとりする通信プログラムを作っています。

関連するQ&A