我正在尝试使用NMSSH框架快速实现某些功能。

为了在从服务器收集数据时不冻结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"]

最佳答案

尝试使用NSOperationQueue,它的级别更高,也许可以更好地处理

关于swift - swift 与NMSSH斗争;错误-2,-9,-18,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38084097/

10-11 22:57