8秒ごとにサーバーにパケットを送信するクライアントがあります。サーバーは、パケットの送信が速すぎることを検出すると、クライアントを切断します。クライアントでは、Sleep(8000) を呼び出します。パケットを送信する前に。サーバー側では GetTickCount(); を使用します。パケット間の時間を計算します。私はこれが問題なく動作することを期待していましたが、切断され続けています。
WireShark を使用してパケット時間を確認したところ、次のようになりました。 Packet# Time 17 8.656064 72 16.957240 115 24.764741
24.764741 - 16.957240 = 7.807501 < 8 が切断された理由です。クライアントで Sleep(8000); を呼び出すため、これがわかりません。そのため、8 秒以上ごとにパケットを送信する必要があります。
2 番目のパケットは 0.3 秒遅く、3 番目のパケットは約 0.2 秒早いです。これらのパケットを時間内に送信する方法はありますか?