4

ENet は UDP ネットワーク ライブラリです。チュートリアルはhttp://enet.bespin.org/Tutorial.html から入手できます。

しばらくの間 enet_host_service() を呼び出していないが、「サービス」を行っていない間にパケットがマシンに到着するとどうなりますか? enet_host_service() への呼び出しを待って、どこかにバッファリングされていますか?

チュートリアルでは、タイムアウト 0 でこの関数を呼び出すことができるとも述べています。つまり、待機しない場合は、バッファを読み取る必要があります...

4

1 に答える 1

3

を呼び出すまで、パケットはオペレーティング システムでバッファリングされると確信していenet_host_service()ます。これを行うまで、enet は何もできないからです。それは完全に死んでおり、独自のコードが実行されている限り、その状態は変わりません。

を呼び出すとenet_host_service()、ソケット API を使用して OS から UDP パケットが取得されます。その後、それらはおそらく enet 自体によってバッファリングされます (複数の「イベント」または「パケット」がある場合) enet_host_service()。一度に 1 つのイベント (OS のデータから複数のイベントを受信する場合もあります)。

enet_host_service()そのため、バッファがいっぱいになると OS は着信パケットを単純に破棄するため、できるだけ頻繁に呼び出す必要があります。

于 2012-11-18T10:06:59.217 に答える