NodeJS写入后无法从telnet套接字接收数据
NodeJS Cannot receive data from telnet socket after writing to it
当我连接时,我得到了初始数据,就像我从 CMD 手动打开 telnet 一样,但我正在尝试发送命令,但它似乎没有工作,因为它没有记录数据。我到处都看了,但我不知道该怎么做。
这是我使用的代码
const conn = new net.Socket();
conn.connect({port: 587, host: mxOrDomain}, () => {
conn.setEncoding('utf8');
conn.on('data', (data) => {
const message = data.toString();
console.log(message);
});
conn.on('error', (data) => {
console.log('error : ', data);
});
conn.on('drain', () => {
console.log('drained');
});
conn.on('end', () => {
console.log('Ended');
});
setTimeout(() => {
conn.write('HELO blahbalh.com\r\n', 'utf8');
}, 2000);
});
此外,为什么 telnet {domain} 587 在 CMD 中有效,而在使用 cp.exec() 或 .spawn() 时无效?
原来你必须以 \r\n 结束你的写入字符串,但我的 IDE 默认放置 \\r\\n。
当我连接时,我得到了初始数据,就像我从 CMD 手动打开 telnet 一样,但我正在尝试发送命令,但它似乎没有工作,因为它没有记录数据。我到处都看了,但我不知道该怎么做。
这是我使用的代码
const conn = new net.Socket();
conn.connect({port: 587, host: mxOrDomain}, () => {
conn.setEncoding('utf8');
conn.on('data', (data) => {
const message = data.toString();
console.log(message);
});
conn.on('error', (data) => {
console.log('error : ', data);
});
conn.on('drain', () => {
console.log('drained');
});
conn.on('end', () => {
console.log('Ended');
});
setTimeout(() => {
conn.write('HELO blahbalh.com\r\n', 'utf8');
}, 2000);
});
此外,为什么 telnet {domain} 587 在 CMD 中有效,而在使用 cp.exec() 或 .spawn() 时无效?
原来你必须以 \r\n 结束你的写入字符串,但我的 IDE 默认放置 \\r\\n。