だ限IOに働きかけているのか?
-
01-07-2019 - |
質問
いるプログラムを読み込みからソケットが開かれます。し続ける方法があるでしょうかをダウンロード率が一定の閾値?
解決
のためのアプリケーションレイヤを使用してバークレーのソケット形式のAPI)あなただけのクロック、データ書き込み/読み込みをしたい制限します。
している場合、読み10kbps平均が、ソースが送出し、それ以上にそのすべてのバッファに変更しますお買い上げで埋まる。TCP/IPできるこのプロトコルの手配をいたしますの送遅くなって、アプリケーション層、すべてがわかるのは、他端にブロック書込通話のブロックでは、nonblockingに書き込みに失敗し、非同期書き込みのない、まだ十分なデータを読みを許可します。
のためのアプリケーションレイヤまで近似できない保証はハードの制限など"を10名以外の添付ファイルのパスとして定められた地域のネットワークの一秒".例えばトラックがどのように受けとったときの平均のです。
他のヒント
を想定したネットワークの輸送には、TCP/IPに基づく、パケット送信に対応しACK/NACKパケットに行くのです。
限に抑えることによって率のパケットが受領の受信パケットは、右のように新たなパケットを送信されます。
まれるビットすることができますが不正確であり、それに最適なモニターの下流率を調整し、回答率を適応的に赴任、その内部には快適にzemax®ファイルをご参照ください。(これが本当に素早ただし、送dosensのacks秒)
このような場合に限定するゲームでは一部のFPS
extern int FPS;
....
timePerFrameinMS = 1000/FPS;
while(1) {
time = getMilliseconds();
DrawScene();
time = getMilliseconds()-time;
if (time < timePerFrameinMS) {
sleep(timePerFrameinMS - time);
}
}
このように確保するのにゲームをリフレッシュ速なければなりませんFP.同様にDrawSceneできる機能を使用ポンプバイトのソケットストリームです。
だから読み込むソケットまたは帯域幅の使用だけの読み込みosのバッファのソケットは、何も言いますと、人の書きソケット書き下データのない限りはもちろん、まったプロトコルを用いします。
すべての読み込みにくいが、バッファーとなることがあり、最終的な出店のネットワーク端できない制御の場としての対象になるときがある。
だいたい読み取りのみでデータを、いつものようになります:
ReadFixedRate() {
while(Data_Exists()) {
t = GetTime();
ReadBlock();
while(t + delay > GetTime()) {
Delay()'
}
}
}
wgetのように管理するためのlimit-rateプションです。ここからはmanページ:
ご注意Wgetを実装する制限 による睡眠の程度が適量 するまでの間に、ネットワーク読み取る 少ない時間以上で指定された ます。最終的にこの戦略の要因 TCPの転送遅くなってる 約指定された。しかし、がかかることが予想されますので時間 このバランスを実現い 驚かされた場合に限の うまくいかないと非常に小さい ファイルです。
その他っているため、OSカーネルでの管理、交通までを読み込むだけなので、コピー、データのカーネルメモリ。約限定の速度でアプリケーションを最適化して、必要な遅延をお読み込みのデータを受信パケットバッファーをカーネルとの認識の受信パケットの低減率につソケットが開かれます。
ごゆっくりしたいすべての交通の機械として安心してご利用いただけ調整し、サイズのTCP受信バッファ.Linuxでは、というこの変更などを変化させることにより値が/proc/sys/net/ipv4/tcp_rmem(読み取りメモリバッファサイズのその他のtcp_*ファイルです。
追加Brananの回答:
ご自主的に制限は読取速度の受信機は、最終的にキューが書き込んでも終了です。その後、送信者はブロックに送()を呼び出しに戻からの送信()を呼び出しとsent_length以下の長さの送ります。
場合、送信者は事前に対応策を検討しておくことにより睡眠そうとすると再発送にかない場合OSのバッファーまで終えて接続課題は、送信者が検出しエラーなデータの送雰囲気が無意識の廃棄データのなかった場合OSのバッファ).
セットの小型ソケットの送受信バッファーという1kは2kであり、そのような帯域幅*遅延製品=バッファのサイズです。できない場合があります十分な細かさの超高速リンクになります。