C#でDirectX9 初心者の館 2頂点目

このエントリーをはてなブックマークに追加
508411
って、文字列送信してキーボードの操作をサーバー側で再現とかやってるわけないですよね
どう考えても現在地の座標を送ってる…
と、いうことは座標をクラからサーバーに送ってあげる方法となると思うのですが
サンプルは
client = new TcpClient(server, port);
stream = client.GetStream();
data = System.Text.Encoding.UTF8.GetBytes(message);
stream.Write(data, 0, data.Length);
と、いった具合に文字列送信のが主になっていまして
最初はキーを押したらそれに関連した文字を送信してサーバー側で動かすということをやっていたのですが
FPSは落ちてカクカクして同期もまったく取れないので
座標を送るようにしようと思いましたが
方法がわかりません。よろしければご教授願います。
509411:2006/02/09(木) 17:07:46
文字列で座標を送り
Splitによって座標XYZを取り出してそれをモデルの座標とすることで
一応は動くようになったのですが
通信を毎フレームごとしっかり確立できてないのか
クウライアントでの操作がサーバー側にフレームごとに反映されずかくかく動いてしまいます。
サーバー通信部分(スレッド内)
//接続待機
client = server.AcceptTcpClient();
//接続
stream = client.GetStream();
int i;
//メッセージを受信
i = stream.Read(bytes, 0, bytes.Length);
data = System.Text.Encoding.UTF8.GetString(bytes, 0, i);
string [] arry;
arry = data.Split(',');
POSX = arry[0];
POSZ = arry[1];
RORATEY = arry[2];
クライアント側通信部分(スレッド内)
//サーバーに接続
message=pos.X+","+pos.Z+","+character.rotate.Y;
client = new TcpClient("192.168.0.1", port);
stream = client.GetStream();

//サーバーにメッセージを送信
data = System.Text.Encoding.UTF8.GetBytes(message);
stream.Write(data, 0, data.Length);
上記のはメイン画面表示ループからスレッド分岐した関数の通信部分です。
サーバー側に滑らかに座標データを転送する方法をご存知の方いらっしゃいましたらアドバイスお願いします。