TCPClient
はあまり使われていませんが、Socket
がたくさんありますか?彼らとの主な違いは何ですか?また、それぞれをいつ使うのですか?CクライアントのTCPClientとソケット#
私は.NET Socket
がWINSOCKの上に書かれ、TCPClient
はSocket
クラスのラッパーであることを理解します。したがって、TCPClient
は鎖を上っており、おそらく効率が悪いことがあります。私が間違っているなら、私を訂正してください。
TCPClient
はあまり使われていませんが、Socket
がたくさんありますか?彼らとの主な違いは何ですか?また、それぞれをいつ使うのですか?CクライアントのTCPClientとソケット#
私は.NET Socket
がWINSOCKの上に書かれ、TCPClient
はSocket
クラスのラッパーであることを理解します。したがって、TCPClient
は鎖を上っており、おそらく効率が悪いことがあります。私が間違っているなら、私を訂正してください。
TcpClientとTcpListenerを使用すると、コードの行数が少なくなります。あなたが言うように、それはSocketクラスの単なるラッパーなので、パフォーマンスの違いはありません。純粋にスタイルの選択です。
また、TCPClient
オブジェクトからソケットに直接アクセスすることもできます。このオブジェクトは、Client
というプロパティの下にあります。パフォーマンスに違いはありません。
「スタイル」はここでは「常識」の大きな言葉です。あなたがプレハブを使用することができれば、是非、そうしてください: – xtofl
ここでの注意はこれと矛盾しているようです。 http://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx "比較的シンプルなアプリケーションを作成していて、_パフォーマンスを最大限にする必要がない場合は、 TcpClientを使用する " – Jon
矛盾はありません。より抽象度が高いという一般的な前提は、基礎となる機能性に関して柔軟性が低いということです。したがって、 'TcpClient'のモデルに合わないものを行う必要がある場合、APIをねじったり曲げたりして、プロセスの可読性とパフォーマンスが低下する可能性があります。しかし、それが意図した目的のために使用しているのであれば、より明示的なAPIよりもパフォーマンスが劣ると考える固有の理由はありませんが、読みやすくすることはできます。 – tne