我正在尝试使用swift中的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"]