0
我試圖在swift中使用NMSSH
框架實現某些功能。迅速與NMSSH苦苦掙扎;錯誤-2,-9,-18,
要沒有我的UI凍結,同時從服務器收集數據,我把裏面的東西一個
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0))
我有時(約50%的概率)隨機獲得這些錯誤之一。我不確定是什麼原因導致他們或如何預防他們。看起來似乎是隨機的,但是出現了連鎖反應,其中一個出現了問題,它會在一段時間內繼續出現問題,當它最終起作用時,它將連續工作幾次。
Socket connection to 192.168.178.27 on port 22 failed with reason -2, trying next address...
Error Domain=libssh2 Code=-18 "Authentication failed (keyboard-interactive)" UserInfo={NSLocalizedDescription=Authentication failed (keyboard-interactive)}
Error Domain=libssh2 Code=-9 "Waiting for password response" UserInfo={NSLocalizedDescription=Waiting for password response}
但最常見於
Error Domain=libssh2 Code=-9 "Would block requesting userauth list" UserInfo={NSLocalizedDescription=Would block requesting userauth list}
和
Error Domain=libssh2 Code=-9 "Would block" UserInfo={NSLocalizedDescription=Would block}
編輯:我貼我的整個代碼here,但它是有點凌亂。 該函數應該被調用一次,然後檢查一堆服務器的可用性。
getServers()
返回字典的數組,每個看起來像["alias": "iMac", "ip":" mac.local", "port":"22", "username": "root", "password": "123"]
看起來像一個同步問題。 'dispatch_async'調用中發生了什麼? –
@CodeDifferent好的,我添加了一個示例 – Hans