
「UNIXでのネットワークプログラミング」コースの以前の講義で作成されたプログラムは、忍耐力を無限に提供していました。つまり、処理するデータが到着するまで暗黙的に待機していました。 新しい講義では、プログラムの忍耐を特定の時間枠に制限する方法を学びます。
コースの作成者であるAlexander Patrakovは、ネットワークプログラムで時間に関連するイベント(データの送受信のタイムアウトなど)を処理する方法を説明します。 ブロッキングソケットの場合、すべてが非常にシンプルで、非ブロッキングソケットがあります-もう少し複雑です。
ノンブロッキングソケットの場合、select()関数またはその類似物に渡す必要があるタイムアウト値を効果的に計算するために、「バイナリヒープ」と呼ばれるデータ構造を適用できます。 他の名前は「ピラミッド」です。
仕組みを確認するには、ビデオをご覧ください。
スライドはこちらから入手できます。
以前の講義:
1. UNIXとCを恐れない人のためのコース
2. プロセス内の各クライアントへ
3. プロトコルまたは占星術師の仕組みを実装します
4. 最後まで読む方法
5. 自動スタイルのプログラム-翻訳の難しさ
6. 複数のことを同時に、そして同時に順番に行う方法は?
7. 効果的な読書