我知道TcpClient是套接字类的包装器,如果使用TcpClient,我可以访问底层套接字,但是包装器究竟做了什么?
使用TCPClient时,我是否需要像使用套接字那样继续调用Receive(),还是包装器确保我的所有数据都出现?
最后,我可以在服务器和客户端上使用TcpClient来包装套接字(在使用TcpListener接受服务器上的原始连接之后)
答案 0 :(得分:20)
包装器究竟做了什么?
让我用一个例子解释一下。你有一个C#File.ReadAllLines
的方法。它会为您读取文件中的所有行。现在你也可以通过FileStream
类或任何其他读取文件的类来实现相同的结果。但是...包装器即File.ReadAllLines
,允许你用更少的代码行来实现相同的结果。 Wrappers总是通过抽象出低级细节来提高生产力
使用TCPClient时,我需要像我一样继续调用Receive() 使用套接字或包装器确保我的所有数据都出现?
TCPClient
没有像Receive
这样的Socket
方法,但这个想法是一样的。您必须使用GetStream
之类的方法来读取它不会自动为您显示的数据
我可以在服务器和客户端上使用TcpClient来包装 插座
是的,您可以在客户端和服务器端安全地使用它