我很困惑在处理套接字时使用什么是"最好的".Socket对象提供发送/接收方法(和异步等效方法),但也允许创建NetworkStream.我使用Socket.Send获得任何乐趣的唯一方法是将调用包装在一个块中,例如:
using (Stream stream = new NetworkStream(socket)) {
socket.Send(...);
stream.Flush();
}
使用SslStream时,如果您在底层套接字上发送消息,它是否会通过SSL发送?我应该只使用Stream.Write(...)而不是socket方法吗?
谢谢.
dtb*_*dtb 15
经验法则:
在AuthenticateAsClient/Server之后,您的连接将受到SSL保护.然后不要调用Socket或NetworkStream方法:这将破坏SslStream.
(在某些情况下可以忽略这些规则,但是你需要非常小心并准确地知道Socket,NetworkStream和SslStream在底层做什么.如果你总是使用最外层的包装器,那么你就是安全的.)