サーバー/クライアント接続を扱う際に、これらの両方が効果的に使用されているのを見てきましたが、どちらにも明らかな利点はありませんが、どちらか一方に既知の利点がなければ、両方が存在するとは思えません。両者の明確な違いを知っている人はいますか?助けていただければ幸いです、ありがとう。
2226 次
1 に答える
2
Socket.Send
WINSOCKレイヤーを介して直接データを生で送信します...送信時にデータを Stream
バッファリングおよび処理します。通常、ストリームのような機能が必要な状況で使用されます。明らかに、余分なオーバーヘッドがあります。と比較するとSend
、このオーバーヘッドには、「ストリーム」を管理するための新しいクラスの作成と、 と の間の間接的なレイヤーの導入が含まれますSocket.Send
。 NetworkStream.Write
最終的にはSocket.Send
;を呼び出すだけです。しかし、それはオーバーヘッドの数層です。
タイプを使用して、ストリームをセットアップするための作業ももう少しありますNetworkStream
。
もちろん、ストリームは双方向にすることもできます。つまり、ストリームへの読み取りと書き込みの両方が可能です。メソッドを使用して、ソケットから完全に読み取ることができますReceive
。
Send
orを使用するとReceive
、ソケットに直接結合されます。Stream
-derivativeを使用すると、 から分離されSocket
、 で動作するメソッド/クラスを自由に使用できますStream
。
于 2012-07-24T18:31:19.760 に答える