2

サーバー/クライアント接続を扱う際に、これらの両方が効果的に使用されているのを見てきましたが、どちらにも明らかな利点はありませんが、どちらか一方に既知の利点がなければ、両方が存在するとは思えません。両者の明確な違いを知っている人はいますか?助けていただければ幸いです、ありがとう。

4

1 に答える 1

2

Socket.SendWINSOCKレイヤーを介して直接データを生で送信します...送信時にデータを Streamバッファリングおよび処理します。通常、ストリームのような機能が必要な状況で使用されます。明らかに、余分なオーバーヘッドがあります。と比較するとSend、このオーバーヘッドには、「ストリーム」を管理するための新しいクラスの作成と、 と の間の間接的なレイヤーの導入が含まれますSocket.SendNetworkStream.Write最終的にはSocket.Send;を呼び出すだけです。しかし、それはオーバーヘッドの数層です。

タイプを使用して、ストリームをセットアップするための作業ももう少しありますNetworkStream

もちろん、ストリームは双方向にすることもできます。つまり、ストリームへの読み取りと書き込みの両方が可能です。メソッドを使用して、ソケットから完全に読み取ることができますReceive

Sendorを使用するとReceive、ソケットに直接結合されます。Stream-derivativeを使用すると、 から分離されSocket、 で動作するメソッド/クラスを自由に使用できますStream

于 2012-07-24T18:31:19.760 に答える