作者:有风吹过best | 2023-08-28 19:13
我没有看到太多的用处TCPClient
,但有很多Socket
?它们之间的主要区别是什么?您何时使用它们?
我知道.NET Socket
是在WINSOCK之上编写的,并且TCPClient
是Socket
类的包装器.因此TCPClient
,链条上行,可能效率低下.如果我错了,请纠正我.
1> sipwiz..:
使用TcpClient和TcpListener只意味着少了几行代码.正如你所说它只是Socket类的包装器所以它们之间没有性能差异,它纯粹是一种风格选择.
这里的说明似乎与此相矛盾.http://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx"如果您正在编写一个相对简单的应用程序而且_do不需要最高性能_,请考虑使用TcpClient"
没有矛盾.关于更高级别抽象的一般假设是它在底层功能方面的灵活性较低.因此,如果你需要做一些不符合"TcpClient"模型的事情,你最终可能会扭曲和弯曲它的API,并在此过程中失去可读性和性能.如果你将它用于它的设计目的,那么没有任何内在的理由相信它的表现不如更明确的API,但你会获得可读性.
"风格"在这里是"常识"的一个大词.如果你可以使用预制件,一定要这样做:)
2> John Rasch..:
此外,您可以直接从TCPClient
对象访问套接字,它位于属性下Client
- 因此没有性能差异.