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

Der*_*mot 20 c# sockets tcpclient

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

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

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

Har*_*san 20

包装器究竟做了什么?

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

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

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

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

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