No veo mucho uso de TCPClient
, sin embargo, hay un montón de Socket
? ¿Cuál es la principal diferencia entre ellos y cuándo usarías cada uno?TCPClient vs Socket en C#
Entiendo que .NET Socket
está escrito encima de WINSOCK, y TCPClient
es un contenedor sobre la clase Socket
. Por lo tanto, TCPClient
está muy arriba en la cadena, y posiblemente ineficiente. Corrígeme si estoy equivocado.
'estilo' es una gran palabra para 'sentido común' aquí. Si puede usar un prefabricado, por supuesto, hágalo :) – xtofl
La nota aquí parece contradecir esto. http://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx "Si está escribiendo una aplicación relativamente simple y _no requiere un rendimiento máximo_, considere utilizando TcpClient " – Jon
No hay contradicción. La suposición general sobre un nivel superior de abstracción es que es menos flexible con respecto a la funcionalidad subyacente. Por lo tanto, si necesita hacer algo que no se ajusta al modelo de decir, 'TcpClient', podría terminar torciendo y doblando su API y perderá en legibilidad y rendimiento en el proceso. Si lo está utilizando para lo que está diseñado, sin embargo, no hay una razón inherente para creer que tendrá un rendimiento inferior al de una API más explícita, pero obtendrá una mayor legibilidad. – tne