0
我想與node.js的windows EXE進行通信。我是相當新的Node.jsnode js child spawn stdin stdout exe通信
以這個例子爲起點,但我不能得到它的工作。
http://juristr.com/blog/2014/03/integrating-node-with-csharp/
它看起來像可執行文件沒有啓動,因爲連接是錯誤的,當我運行它。 我看不到在哪裏/如何啓動可執行文件。
EXE代碼(從它工作正常命令行中運行,返回無論是進入)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibraryExe
{
class Program
{
static void Main(string[] args)
{
string line;
do
{
line = Console.ReadLine();
try
{
Console.WriteLine("Recieved - " + line);
if (line == "quit")
break;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
} while (line != null);
}
}
}
Node.js的代碼(似乎並沒有啓動exe程序,連接= FALSE)
console.log('Hello world');
var spawn = require('child_process').spawn;
var posProc = spawn('C:/path/LibraryExe.exe', []);
posProc.stdout.once('data', function (data) {
// write it back on the response object
console.log('stdOut');
writeToResponse('we got back ' + data);
});
posProc.on('exit', function (code) {
console.log('Closed');
writeToResponse('Library closed');
});
posProc.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
if (posProc.connected)
console.log('connected');
else
console.log('not connected');
posProc.stdin.setEncoding = 'utf-8';
posProc.stdin.write('Hello');
posProc.stdin.write('quit');
console.log('ending');
這樣的工作,但如何連接= false。我甚至檢查「posProc.stdout.once()」中連接的內部,它表示它沒有連接到那裏。 – runfastman
不要打擾查看「連接」和其他未記錄的子進程對象的屬性。他們是實現細節,源於這樣一個事實,即子進程對象是基於套接字(因此是「連接」屬性)。 – mscdex