Node.js эквивалент: echo 'message' |nc -v <server><port> - PullRequest
0 голосов
/ 26 ноября 2018

Попытка отправить простое текстовое сообщение в приложении Node.js таким же образом, как я делал бы это с терминала, используя 'nc', то есть

echo "a.random.test" | nc -v <some_domain> <some_port>

Однако это сделать не удалось.Я попытался использовать const 'netcat / client' модуль npm безуспешно.Вот ссылка на документацию для этого модуля https://github.com/roccomuso/netcat, а ниже приведены некоторые из моих текущих попыток.Похоже, что соединение установлено (подтверждено из-за срабатывания обратного вызова), однако в сообщении есть дополнительное заполнение, и мое предполагаемое открытое текстовое сообщение "a.random.test" - , а не , полученное как есть, "a.random.test ".

const nclient = require('netcat/client')
const nc2 = new nclient()

nc2
.addr('x.x.x.x') // the ip
.port(2003) // the port 
.connect()
.send(`a.random.test`, () => console.log(`connection made and message sent`))

Я также попытался с хорошими гнездами для модулей 'net' ниже, но безуспешно.

var net = require('net');
var client = new net.Socket();

client.connect(2003, 'x.x.x.x', function() {
    console.log(`sending to server: a.random.test`)
    client.write(`a.random.test`)
});

Любая помощь при отправке простого текста на заданный портв файле node.js очень ценятся ... Я чувствую, что это должно быть легко - я потратил больше времени, чем хотел бы признать, пытаясь сделать это!Заранее большое спасибо.

1 Ответ

0 голосов
/ 26 ноября 2018

echo добавляет новую строку к строке, которую вы не добавляете в свой код JS:

var net = require('net');
var client = new net.Socket();

client.connect(2003, 'x.x.x.x', function() {
    console.log(`sending to server: a.random.test`)
    client.write(`a.random.test\n`)
                               ^^
});
...