どうか助言をお願いします。
作っているのは、2台のパソコンでデータ通信を行うものなのですが、以下のような動作をします。
①パソコンAで3Dマウスの座標データを取得
②TCP/IP通信を使い、パソコンBへ座標データを転送
③パソコンBで送られてきた座標データを元に3Dグラフィックで絵を表示
また、ソースはこのような感じになっています。
<PC_A(送信側)> main(){ while(1){ GetZahyou(); // 座標データを取得 SendZahyou(); // パソコンBに転送 } } <PC_B(受信側)> main(){ CreateThread(); // 座標を受信するスレッドを作成 while(1){ Output(); // 3D座標をグラフィックで表示 } } Thread(){ while(1){ GetData(); // 送られてきた座標データを受け取る } }通信、表示も一応動くのですが、動作が不安定でたびたび強制終了してしまいます。
また、受信側の表示は動作がカクカクでスムーズに動いているとはいえません。
思い当たる原因としていろいろ考えてみたのですが、まず、このプログラムでは送る速度と受け取る速度の調節ができていないため、カクカクになってしまうのではないかと考えています。
それ以外にも、動作の確認のためにPrintf文を数箇所に入れているのですが、受信側のPrintf文の数によってうまく動作したり、すぐに強制終了したりしてしまいます。減らせばいいというものではなく、適量のPrintf文があったほうが動作が安定することからPrintfによる割り込みのせいでちょうどよいタイミングになっているのか?などとも予想しています。
お願いしたいことは、
1.動作の同期をとるためにそれぞれのWhileループを1msでループするようにしたいのですが、その方法を教えていただけないでしょうか。
2.また、他の方法でもっと良いもの、あるいは改善した方が良い点があったら指摘していただけないでしょうか。
以上の二つです。
どうかよろしくおねがいします。