我使用 Microsoft 網站上提供的 winSocket 示例在 C 中使用 localhost(127.0.0.1) 制作了一個服務器。這是一個簡單的 C 控制臺應用程式。然后我根據 Microsoft 檔案使用 System.Net.Sockets 類在帶有 C# 的 UWP 應用程式中創建了一個客戶端。客戶端未連接。
我通過在 C 控制臺應用程式、python 代碼、簡單的 C# 控制臺應用程式中創建客戶端再次檢查,它已成功連接并正常作業,但是當我在 UWP 應用程式中創建它時它不起作用。我檢查了所有可能的更改,例如檢查驅動程式檔案夾中的主機檔案、將“localhost”更改為“127.0.0.1”、關閉防火墻、所需的 dotnet 組件等。
還有一點,UWP app中的客戶端只有在我們除錯客戶端代碼的時候才能成功連接。但是當我們在發行版中進行最終設定/安裝時,它不起作用。這很奇怪!!
它顯示的錯誤如下-
SocketException : {0}System.Net.Internals.SocketExceptionFactory ExtendedSocketException: 連接嘗試失敗,因為連接方在一段時間后沒有正確回應,或建立連接失敗,因為連接的主機未能回應 127.0.0.1:27311 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) at SmartCabinetSolution.App.RFIDSocket.Start()
uj5u.com熱心網友回復:
還有一點,UWP app中的客戶端只有在我們除錯客戶端代碼的時候才能成功連接。
看起來網路環回會導致此問題(在除錯模型中默認允許本地網路環回),如果要在同一設備上運行的兩個行程之間創建 TCP/IP 連接,并且其中一個是 UWP 應用程式,則必須啟用 localhost環回。有關更多詳細資訊,請參閱為 App Installer 添加環回豁免。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/398084.html
