gpt4 book ai didi

c# - TcpClient.GetStream().Read() 与 TcpClient.Client.Receive()

转载 作者:太空狗 更新时间:2023-10-29 21:11:20 54 4
gpt4 key购买 nike

.NET 允许两种非常相似的方式从网络“读取”(假设 TCP 连接):

1. TcpClient.GetStream().Read() 
2. TcpClient.Client.Receive()

通过查看 NetworkStream 源代码 - 它似乎是对底层套接字的额外包装,最终调用 Socket 方法。

问题:使用“间接”NetworkStream 变体(#1)而不是使用 Socket 实现提供的直接包装器有什么好处?

谢谢, 鲍里斯。

最佳答案

事实上,使用第一个选项(TcpStream 而不是 Socket)有一个非常明显的好处。好处是当同一程序需要不同的底层实现时,流 API 更加灵活。

例如,有时可能使用 SSL 有时可能不使用 SSL 的代码可以在不更改调用代码的情况下在 SslStream 和 TcpStream 之间切换。这是仅使用普通 Socket API 难以完成的事情。

关于c# - TcpClient.GetStream().Read() 与 TcpClient.Client.Receive(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1744073/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com