0

BSDスタイルのものと比較してWSAwinsock関数を使用することでWindowsに何か利点はありますか?

4

4 に答える 4

2

Windows 95などのレガシープラットフォームへの展開を計画している場合、またはwinsock APIに絶対になくてはならないものがあり、自分自身を転がしたくない場合にのみ(<-疑わしい)。

于 2008-11-08T03:39:43.977 に答える
2

最も大きな違いは、Winsock で非同期イベント スタイルの API を使用できることです。

readBerkeley ソケットを使用すると、ネットワークの準備が整うまでユーザーまたはwriteアプリケーションが「ブロック」されるたびに、アプリケーションが応答しなくなる可能性があります (ネットワーク I/O が別のスレッドで処理されない限り)。

非同期インターフェイスを使用すると、データを受信するたびに、または送信バッファーが空のときに、通常の Windows メッセージ ループの一部としてコールバック関数が呼び出されるように調整できます。

于 2008-11-09T23:47:30.840 に答える
1

BSD パラダイムを中心に設計すると、移植作業を軽減して、コードを他のプラットフォームで動作させることができます。ネットワーク ライブラリが非同期 I/O をサポートすると仮定すると (Alnitak が言及しているように)、それがあなたの下から引き出された場合、さらに多くの作業を行う必要があります。

もちろん、Microsoft の温かい懐を離れることはないと確信しているのであれば、気軽に街に出かけてください。

于 2008-11-10T17:28:37.297 に答える
0

Alnitak の回答に関しては、同意します。ソケットで非同期操作を使用するためにメッセージ ループを使用する必要がないことを付け加えておきます。I/O 完了ポートの使用は、高性能ネットワーク アプリケーションを構築するための非常にスケーラブルな方法です。

于 2008-11-10T17:22:37.980 に答える