2009-03-26 146 views
40

TCPClientはあまり使われていませんが、Socketがたくさんありますか?彼らとの主な違いは何ですか?また、それぞれをいつ使うのですか?CクライアントのTCPClientとソケット#

私は.NET SocketがWINSOCKの上に書かれ、TCPClientSocketクラスのラッパーであることを理解します。したがって、TCPClientは鎖を上っており、おそらく効率が悪いことがあります。私が間違っているなら、私を訂正してください。

答えて

31

TcpClientとTcpListenerを使用すると、コードの行数が少なくなります。あなたが言うように、それはSocketクラスの単なるラッパーなので、パフォーマンスの違いはありません。純粋にスタイルの選択です。

+2

「スタイル」はここでは「常識」の大きな言葉です。あなたがプレハブを使用することができれば、是非、そうしてください: – xtofl

+6

ここでの注意はこれと矛盾しているようです。 http://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx "比較的シンプルなアプリケーションを作成していて、_パフォーマンスを最大限にする必要がない場合は、 TcpClientを使用する " – Jon

+2

矛盾はありません。より抽象度が高いという一般的な前提は、基礎となる機能性に関して柔軟性が低いということです。したがって、 'TcpClient'のモデルに合わないものを行う必要がある場合、APIをねじったり曲げたりして、プロセスの可読性とパフォーマンスが低下する可能性があります。しかし、それが意図した目的のために使用しているのであれば、より明示的なAPIよりもパフォーマンスが劣ると考える固有の理由はありませんが、読みやすくすることはできます。 – tne

9

また、TCPClientオブジェクトからソケットに直接アクセスすることもできます。このオブジェクトは、Clientというプロパティの下にあります。パフォーマンスに違いはありません。

関連する問題