2

Boost asio udpSocketを使用して、データを読み取る準備ができるまで待機するか、タイムアウトが切れるまで待機する関数を実装しようとしています。

asyc_readとasync_waitを使用して、同様のことを行うことができますが、データを読み取る必要があります。データを読まずに同じことをしたい

これにより、多くの状況でudpSocketクラスをはるかに簡単に使用できるようになりますが、udpSocketインターフェイスを考えると、データを手動でバッファリングし、sync_read関数を書き直さないと、このような関数を実装する方法がわかりません。

最高、Dd

4

1 に答える 1

2

オプション( linkasync_receive ) を使用して( link ) を呼び出してみてください。そうすれば、必要に応じてタイムアウト制限付きの読み取りを設定できますが、受信バッファーからデータを引き出すことはありません。message_peek

詳細については、MSG_PEEK の MSDN の説明を参照してください(これは、Windows 固有の実装でmessage_peekあり、記事の一番下までスクロールする必要があります)。これにより、より詳細にどのように機能するかについての良いアイデアが得られるはずですが、確実に確認するには、システムのドキュメントを参照する必要があります。

于 2009-11-16T22:20:39.960 に答える