select() を使用して、他のサーバーから更新を受信し、定期的なメッセージを送信したいと考えています。次の設定を検討してください。
while(1){ select(... タイムアウト = 5 秒); // 他のコード}
t = 2秒で更新を受信すると、 select()が返され、対応するステートメントが実行されます。次のループが始まると、タイムアウトは再び 5 秒に設定されます。ただし、 5 - 2 = 3秒にする必要があります。タイマーを適切な時間に更新する方法はありますか?
select() の前にタイマーを手動で開始することを考えましたが、このタイマーはselect()で使用されているものと同期していない可能性があります。また、他の潜在的な問題を引き起こす可能性があります。