0

CAsyncSocket派生クラスを使用するレガシー コードがあります。このクラスはオーバーライドOnReceiveされ、SendTo のラッパーもあります。コードは、複数のアプリケーションが同じ PC で使用する dll にあり、すべてのポートはハードコードされています。

名前付きミューテックス (MFC では CMutex) クラス ビットの形式で同期を提供する必要があると思いますが、よくわかりません。

OnReceive で名前付きミューテックスをロックし、CMyAsyncSocket の Send メソッドで別の名前付きミューテックスをロックする必要がありますか?

まったく同期が必要ですか、それとも MFC CAsyncSocket がそれをしてくれますか? 複数のプロセスでソケットにアクセスするのが心配です。

4

1 に答える 1

1

基礎となるソケットは接続の分離を提供するため、各プロセス接続の保護について心配する必要はありません。各プロセスでソケットを使用するスレッドが 1 つだけあると仮定すると、AsyncSocket で発生する可能性があるブロッキングの問題を処理するだけで済みます。つまり、ソケットが要求を処理する準備ができていない場合です。

于 2012-10-10T10:59:08.417 に答える