gpt4 book ai didi

javascript - 当 IP 没有响应时, react native ping 所有主机都会停止

转载 作者:行者123 更新时间:2023-12-03 00:03:24 27 4
gpt4 key购买 nike

我正在尝试对网络上的所有 LAN 主机执行 ping 操作,以找出哪一台还活着,然后找到托管 Web 服务的树莓派以及将我的应用程序与树莓派 Web 服务结合使用的想法操作系统。

到目前为止,我可以在react-native中获取此脚本,检索第一个IP(如果它们正在响应)的时间(以毫秒为单位)。当某些IP未被使用时它会停止。

我需要得到的是 ping 所有主机。

有时我会在 bundler 控制台中收到如下错误:

可能的未处理的 Promise 拒绝(id:0):错误:ping失败错误:ping失败 在 createErrorFromErrorData (blob: http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2022:17 ) 在 Blob :http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:1974:27 在 MessageQueue.__invokeCallback (blob: http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2541:18 ) 在 Blob :http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2272:18 在 MessageQueue.__guard (blob: http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2445:13 ) 在 MessageQueue.invokeCallbackAndReturnFlushedQueue (blob: http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2271:14 ) 在http://localhost:8081/debugger-ui/debuggerWorker.js:72:58

import Ping from 'react-native-ping';

function check(ip) {

return Ping.start('192.168.0.' + ip);
}

async function lanScan(array) {
for (const item of array) {
var ok = await check(item);
console.log(ok + " " + item)
}
console.log('Done!');
}

var ips = [];
for(var i= 100; i<= 254; i++){

ips.push(i);
}

lanScan(ips);

最佳答案

您的检查函数正在返回一个Promise,但您没有设置来处理任何错误。因此,一旦循环中 ping 失败,整个函数就会停止运行。确保每次 ping 始终经过测试的一种方法是将支票包装在 try / catch 中。 。例如:

async function lanScan(array) {
for (const item of array) {
try {
var ok = await check(item)
console.log(ok + " " + item)
} catch(e) {
console.log(e)
}
}
console.log('Done!')
}

关于javascript - 当 IP 没有响应时, react native ping 所有主机都会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55082223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com