Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何允许electron应用程序监听windows上的传入流量_Node.js_Windows_Electron_Electron Builder - Fatal编程技术网

Node.js 如何允许electron应用程序监听windows上的传入流量

Node.js 如何允许electron应用程序监听windows上的传入流量,node.js,windows,electron,electron-builder,Node.js,Windows,Electron,Electron Builder,我正在创建一个TCP服务器来监听Electron中IOT客户端的数据。 在mac中,我会弹出关于允许应用程序中的传入流量的消息,但在windows中,什么都不会发生,并且当防火墙打开时,windows不允许传入流量。 但如果我关掉火,所有的应用程序都可以正常工作。但我希望即使防火墙开启,应用程序也能正常工作 有人能帮我在我的电子应用程序中使用nodeJS代码向防火墙添加异常吗 function startSocket() { try { dataServer = net.create

我正在创建一个TCP服务器来监听Electron中IOT客户端的数据。 在mac中,我会弹出关于允许应用程序中的传入流量的消息,但在windows中,什么都不会发生,并且当防火墙打开时,windows不允许传入流量。 但如果我关掉火,所有的应用程序都可以正常工作。但我希望即使防火墙开启,应用程序也能正常工作 有人能帮我在我的电子应用程序中使用nodeJS代码向防火墙添加异常吗

function startSocket() {
  try {
    dataServer = net.createServer();
    dataServer.on("error", function (error) {
      console.log(error);
      showMsg(error.message, "red");
      dataServer.close();
    });
    dataServer.on("connection", handleConnection);
    dataServer.listen(port, function () {
      const address = dataServer.address();
      var privateIP = ip.address();
      sendMessage({
        title: "start",
        frequencies: frequencies,
        Ns: Ns,
        count: frequencies.length,
        ip: privateIP,
        port: port,
        singleChannel: singleChannel,
      });
      disableElements([startBtn]);
      noLostPackets = 0;
      console.log(`Listing for Data at ${privateIP}:${address.port}`);
      showMsg(`Listing for Data at ${privateIP}:${address.port}`, "green");
    });
    function handleConnection(conn) {
      let fullDataString = "";
      var remoteAddress = conn.remoteAddress + ":" + conn.remotePort;
      showMsg(`new client connection from ${remoteAddress}`);
      conn.on("data", onConnData);
      conn.on("end", onConnClose);
      conn.on("error", onConnError);
      function onConnData(data) {
        fullDataString += data.toString();
        //appending data to the file
        showMsg(`Packet recived`);
        conn.write("data recived");
      }
      function onConnClose() {
        showMsg(`writing to file...`);
        packet.classList.add("packet");
        restartAnimation();
        try {
          data_obj = JSON.parse(fullDataString);
        } catch (error) {
          showMsg("Not Valid JSON data", "red");
          console.log("Not Valid JSON data");
          return;
        }
        let numberOfLines = data_obj.data.split(/\n/).length - 1;
        writeToFile(
          saveFilePath,
          data_obj.data,
          data_obj.frequency,
          numberOfLines
        );
        noOfPackets += numberOfLines;
        bigNumber.innerText = noOfPackets;
      }
      function onConnError(err) {
        console.log(err);
        showMsg(`Reconnecting...`, "green");
      }
    }
  } catch (error) {
    console.log(error);
    showMsg(error.message, "red");
  }
}

您可能遇到了一个限制,即当应用程序不在提升权限下运行时,不允许创建侦听套接字。尝试“以管理员身份运行”,当它工作时,只需创建一个。如果有帮助的话,请留言。我尝试以管理员的身份运行应用程序,但仍然存在相同的问题。防病毒防火墙正在阻止应用程序的传入流量。(抱歉,意外删除了以前的评论)。您应该能够(向下滚动到命令行/powershell部分)我担心您可能无法对阻止您的应用的外部软件做任何事情。如果这有帮助,请记下一条注释,以便有人可能从您的案例中学习。