首頁 > 後端開發 > C++ > 為什麼我的 TCP 伺服器顯示'無法從傳輸連接讀取資料”,如何修復它?

為什麼我的 TCP 伺服器顯示'無法從傳輸連接讀取資料”,如何修復它?

Patricia Arquette
發布: 2025-01-20 06:31:13
原創
458 人瀏覽過

Why Does My TCP Server Show

對 TCP 伺服器中的「無法從傳輸連線讀取資料」進行故障排除

當客戶端嘗試連線時,TCP 伺服器有時會遇到錯誤「無法從傳輸連線讀取資料:現有連線被遠端主機強制關閉」。本文探討了常見原因並提供了解決方案。

此錯誤經常出現在 sr.ReadLine() 期間的第 96 行(在提供的伺服器程式碼範例中)附近,通常源自於傳輸級安全性設定錯誤。

TLS 握手和安全協定相容性

SSL/TLS 握手期間用戶端和伺服器之間的 TLS 協定版本不符是導致此錯誤的主要原因。 System.Net.ServicePointManager.SecurityProtocol 屬性是解決此問題的關鍵。

雖然 .NET 通常會自動協商 TLS 版本,但客戶端和伺服器功能之間的不一致可能會導致握手失敗和錯誤訊息。

解決方案:明確設定安全協定

為了確保相容性,請使用 SecurityProtocol 屬性明確定義支援的 TLS 版本。 新增此行建立連線之前:

<code class="language-csharp">System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;</code>
登入後複製

此程式碼片段支援 TLS 1.0、1.1 和 1.2。 客戶端和伺服器上的 TLS 版本匹配可以保證握手成功,從而使伺服器能夠不間斷地從客戶端讀取資料。

以上是為什麼我的 TCP 伺服器顯示'無法從傳輸連接讀取資料”,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板