void NET_SimulateStreamPacketLoss(NET_StreamSocket *sock, int percent_loss);
| NET_StreamSocket * | sock | 失敗率を設定するソケット |
| int | percent_loss | 0から100の値. 高いほど失敗する. 0のとき無効にする |
開発マシンでネットワークアプリケーションのテストを行う場合があるが(そのマシンは高速で信頼性の高い有線接続であろう), 実際の環境下でwifiの不安定さやファイヤウォールの妨げにより絶え間ないネットワークの切断が発生する場合のバグは発見できないかもしれない.
この関数はライブラリが疑似的にストリームデータ通信の失敗を発生させる確率を設定する.
ストリームソケットは信頼性が高いため, この場合の失敗は, パケットがネットワークで失われた場合の再送信の動作である. これをシミュレートするため, ライブラリはソケットのデータの送信または受信の前にいくらかの待ち時間を挿入する. この関数に0(デフォルト)を設定するとシミュレートが無効になる. 100を設定すると常に失敗する. システムが使用不能になる限界がどこになるかは開発者の課題である. これは実環境の様々な悪条件をシミュレートしてデバッグを行うことを目的としている. この関数を本番環境で呼ぶべきではない. 実環境では本物の失敗が発生するだろう.
この関数に0(デフォルト)を設定するとシミュレートが無効になる. 100を設定すると常に失敗する. システムが使用不能になる限界がどこになるかは開発者の課題である.
これは実環境の様々な悪条件をシミュレートしてデバッグを行うことを目的としている. この関数を本番環境で呼ぶべきではない. 実環境では本物の失敗が発生するだろう.
この関数はどのスレッドからも安全に呼べる.