2009-05-22 4 views
1

私は解決策を推測する人が必要です:(。UDPロックアップ?

私はUDPソケットを使用していますが、私がやっていることは約8、4、または何バイトでもプレイヤーの入力を送信しています。私のアプリケーションのロジックが原因かもしれませんが、誰かがこの問題を経験しているかどうか、またUDP /ネットワーキングの問題であるかどうかを知りたいのですが、私のコードはhttp://www.pastie.org/486583ですが、それはトン私はあなたの経験に基づいて、この問題を修正するために見ることができます。

答えて

2

使用Wiresharkを失敗している側を把握する。

です彼は送信していない?

また、受信していないのですか?

0

あなたのGetInput()関数はsendToとrecvFromが常に完了することを期待していますか? UDPはあなたのメッセージの送受信を保証するものではなく、メッセージの到着順序も保証しません。あなたのタイムアウトも無限に設定されていると思います。何が起こっているかは毎回です。メッセージが失敗し、すでに失われているメッセージが無期限に待っています。

+0

LANで失われる可能性がありますか?私のルータは素晴らしいです。 –

+0

問題ではありませんが、ネットワークトラフィックとUDPの性質は、メッセージが失われることです。コンピュータとルータ間の物理的な配線により、信号が失われます。世界中のサーバをUDPでUDPしようとすると、さらに多くのパケット損失が発生します。 TCPは配信を補償し、保証します。UDPを使用する場合は、それらの機能を自分で実装する必要があります。 – CookieOfFortune

0

"ロックアップ"とはどういう意味ですか?

ネットワークはUDPパケットを失う(ドロップする)ことが許されていることに注意してください。プロトコルによっては時折失われるものや、再送信するものがあるはずです。

0

平均値がロックされ、誰がロックアップしているのですか。 "recvfrom" & "sendto"システムコールの戻り値を確認していません。あなたは行動を観察するためにWiresharkを実行しようとしましたか?

関連する問題