2016-04-30 179 views
0

您好我正在使用C#同時使用TCP(用於登錄和其他東西)和UDP(用於流式語音)的服務器/客戶端項目。問題是我需要使用sslStream for UDP,但據我所知不可能使用無保證協議進行SSL身份驗證。那麼是否有使用TCP進行身份驗證然後使用sslStream for UDP?UDP與SSL流

回答

1

不太瞭解C#和sslStream,但是:UDP是一種數據報協議,它不能保證數據包的傳送,順序,甚至可能導致重複傳送。相反,TCP是一種保證傳輸的流協議.TLS只能在TCP之類的協議之上工作,而不是在UDP之上。

對於UDP,您需要改爲使用DTLS。根據Wikipedia,Microsoft TLS Stack SChannel支持自Windows 7和Windows 2008 R2以來的DTLS 1.0。但是,當searching for C# DTLS顯示了很多問題,但沒有任何內容表明本地支持DTLS和C#。但是有些第三方庫會顯示在這個搜索中,這可能會幫助您解決問題。

+0

感謝您的回答。是的,遺憾的是沒有用於.Net的本地庫,我剛剛發現openSSL爲.NET提供了包裝類,但是我無法在其文檔中找到有關DTLS的任何內容,但它們支持它:(你知道我可以開始學習它的任何地方嗎? –

+0

@ farid_92:不幸的是不是真的,如果你正在搜索DTLS的例子,你會發現各種各樣的,但主要是在C中,所以你需要以某種方式將它應用到C#我不知道OpenSSL綁定提供給.NET的API,但甚至關於他們的C API的文檔缺少很多,所以人們經常從查看示例(如果可用)或源代碼本身:( –