直接在Socket上使用TcpClient有什么好处?

我知道TcpClient是套接字类的包装器,如果使用TcpClient,我可以访问底层套接字,但是包装器究竟做了什么?

使用TCPClient时,我是否需要继续调用Receive(),就像使用套接字一样,或者包装器是否确保显示所有数据?

最后,我可以在服务器和客户端上使用TcpClient来包装套接字(在使用TcpListener接受服务器上的原始连接之后)

包装器究竟做了什么?

让我用一个例子解释一下。 你有一个C# File.ReadAllLines方法。 它会为您读取文件中的所有行。 现在你也可以通过FileStream类或任何其他读取文件的类来实现相同的结果.BUT ..包装器即File.ReadAllLines ,允许你用更少的代码行实现相同的结果。 Wrappers总是通过抽象出低级细节来提高生产力

使用TCPClient时,我是否需要继续调用Receive(),就像使用套接字一样,或者包装器是否确保显示所有数据?

TCPClient没有像Socket这样的Receive方法,但想法是一样的。 您将不得不使用像GetStream这样的方法来读取它不会自动显示的数据

我可以在服务器和客户端上使用TcpClient来包装套接字

是的,您可以在客户端和服务器端安全地使用它