2016-06-28 48 views
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"]

+0

看起來像一個同步問題。 'dispatch_async'調用中發生了什麼? –

+0

@CodeDifferent好的,我添加了一個示例 – Hans

回答

相關問題