使用 C# 和 TCP 时,让客户端使用用户名和密码识别自己,然后允许多个数据包从服务器发送到客户端和从客户端发送到服务器而不发送用户名和密码的最佳方法是什么?时间?每个用户的线程?每个数据包发送的令牌?
另外,如何确保只有客户端能够读取服务器发送的数据,反之亦然?只是使用SSLStream?
你太低级了。您需要的是在 TCP 之上支持身份验证的应用程序协议。选项之一可能是 HTTP。使用 .NET 时,常用的方法是利用WCF(Windows Communication Foundation)。您可以构建一个需要身份验证的 WCF 服务,例如您提到的“用户名和密码”,同时仍然可以灵活选择使用何种底层通信方式(例如 SOAP 和 HTTP,或纯 TCP 和 WCF 的自定义二进制协议等) .)。