Node.js等效于:echo'message'| nc -v <服务器> <端口>

时间:2018-11-26 04:14:32

标签: javascript node.js tcp tcpclient netcat

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

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

但是不能这样做。我尝试使用const'netcat / client'npm模块,但没有运气。这是该模块https://github.com/roccomuso/netcat的文档链接,下面是我目前的一些尝试。似乎已建立连接(已通过回调触发确认),但是消息中存在额外的填充,并且原本未收到我想要的“ a.random.test”纯文本消息“ strong。 .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中给定端口的帮助将不胜感激……我觉得这应该很容易-我花了很多时间比我想承认的要花时间!提前非常感谢您。

1 个答案:

答案 0 :(得分:1)

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