ネットワークプログラミング
とりあえずUDPで通信が可能になりました。
が、無茶苦茶重い・・・。TCP版より重い気が・・・。
で、ちょっと考えました。
キーデータを送信した直後に、相手からのキーデータの受信待ちをしているのが間違いの元ですね。
1フレーム内における処理の順序が
1.Sleep()
2.キーデータ送信
3.キーデータ受信
4.キャラを動かす
5.画面描画
ってなっているんですけど、これだと2と3の間の時間はゼロに等しいので、いかにUDPといえども間に合いっこありません。
1.キーデータ送信
2.Sleep()
3.キーデータ受信
4.キャラを動かす
5.画面描画
こうすれば、データの受信自体はスレッドでやっているので、Sleepしている間にデータが届いている可能性が高くなり、受信待ちで処理落ちする可能性も低くなります。
この考えに到達してからth075casterのソースを見ると、受信と送信でロジックが分かれているのも理解できます。目からウロコですね。