Node.js 相当于:echo 'message' | nc -v <server> <port>

Node.js equivalent of: echo 'message' | nc -v <server> <port>

尝试在 Node.js 应用程序中以与使用 'nc' 从终端相同的方式发送纯文本消息,即

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

然而无法做到。我曾尝试使用 const 'netcat/client' npm 模块,但没有成功。这是该模块 https://github.com/roccomuso/netcat 的文档 link,下面是我目前的一些尝试。似乎已建立连接(由于回调触发而得到确认)但是消息中有额外的填充,我想要的 "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`))

我也试过下面的好'ol "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 中的给定端口将不胜感激...我觉得这应该很容易 - 我花了比我想承认的更多的时间来尝试做所以!非常感谢你提前。

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`)
                               ^^
});