Для выполнения icmp трансляции в моем мобильном приложении Reaction-native, я использую пакет Reaction-native-lanscan.
import { LANScan } from 'react-native-lanscan';
.
.
var lanscan = new LANScan();
.
.
pingBroadcaster = () => {
console.log("Lanscan started!"); // to get log
lanscan.scan(48500, 48503, 500, true);
lanscan.on('host_found', (host, currentAvailableHosts) => {
console.log(typeof(host)); // to get log
})
console.log("Lanscan ended!"); // to get log
}
Когда метод сканирования вызывается в функции arow, он вызывает исключение: «undefined не является объектом (оценивает this.RNLAN_Scan.scan ')»
Добавлены некоторые строки в метод сканирования пакета lanscan , чтобы выяснить, какая строка вызывает ошибку:
function scan(min_port,max_port){
console.log(" Function scan variable declaration"); // to get log
var broadcast_timeout=arguments.length>2&&arguments[2]!==undefined?arguments[2]:500;
var fallback=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;
var ping_ms=arguments.length>4&&arguments[4]!==undefined?arguments[4]:50;
var port_ms=arguments.length>5&&arguments[5]!==undefined?arguments[5]:500;
console.log(" Function call: " + RNLAN_Scan); // to get log
this.RNLAN_Scan.scan(min_port,max_port,broadcast_timeout,fallback,ping_ms,port_ms);
console.log(" Function scan Ends!"); // to get log
}return scan;}()},
Я получил эти журналы:
Lanscan started!
Function scan variable declaration
Function call: null
::ffff:192.168.43.1 - - [26/Feb/2020:14:23:16 +0000] "POST /symbolicate HTTP/1.1" 200 - "-" "okhttp/3.12.1"
Lanscan started!
Function scan variable declaration
Function call: null
::ffff:192.168.43.1 - - [26/Feb/2020:14:23:21 +0000] "POST /symbolicate HTTP/1.1" 200 - "-" "okhttp/3.12.1"
Lanscan started!
Function scan variable declaration
Function call: null
::ffff:192.168.43.1 - - [26/Feb/2020:14:23:26 +0000] "POST /symbolicate HTTP/1.1" 200 - "-" "okhttp/3.12.1"
Lanscan started!
Похоже RNLAN_Scan возвращает ноль Я не уверен, но, возможно, что-то не так с этой строкой:
var RNLAN_Scan=_reactNative.NativeModules.RNLANScan;