Tag: telnet

Nodejs telnet实时响应获取

我使用Express来使用Nodejs。 有什么办法可以同时从请求中获取所有的响应内容吗? 我正在使用telnet发出请求,但并不是在同一时间获取所有内容。 相反,我正在逐渐获得它。 我需要从该响应中提取数据,所以我正在尝试将所有内容写入文件,然后将该xml文件内容转换为json。

在使用nodejs进行telnetlogin时不能input密码

如果我从Windows命令行telnet没有问题: > telnet telehack.com (… wait until a '.' appears) . login username? example password? (examplepass) * * * * * * * Logged… (…) @ (This is the prompt when you are logged) 所以在shell中,我可以login并执行所有操作,并且使用为nodejs编写的JavaScript代码,我可以完成所有操作,但input密码。 然后,我可以:连接到主机+端口,input“login”命令,input“示例”用户名(实际存在),当我尝试input“examplepass”(实际上也存在)telnet服务器回答我'* * * * * * *'但我无法通过这一步。 我会提供代码,任何帮助表示赞赏。 var net = require('net'); var conn = net.createConnection(23, 'telehack.com'); conn.setEncoding('utf-8'); conn.on('connect', function() […]

打开端口23以使用Node.js读取数据

在我的Windows笔记本电脑上有一个程序,在端口23上有一个TCP / IP服务器。我可以用telnetterminal打开它,看到数据stream。 我需要将这些数据转换成我正在处理的node.js程序。 应该很容易,但我还没有find任何代码示例。 search提出了很多如何使用Node.js在端口23上创build服务器的示例。 谢谢

Node.js TCP客户端的行为与Netcat / Telnet不同

我正在发送换行符分隔的文本命令到自定义协议TCP服务器。 在下面的例子中,我发出2个命令,并收到写回的回复。 它在telnet和netcat中按预期工作: $ nc localhost 1234 command1 command2 theresponse 与Node.js连接时,相同的工作stream程不起作用: var net = require('net'); var client = net.connect(1234, 'localhost'); client.on('data', function(data) { console.log('data:', data.toString()); }); client.on('error', function(err) { console.log('error:', err.message); }); client.write('command1\n'); client.write('command2\n'); 我希望在运行这个程序后,我会看到写入到控制台的“data:theresponse”,但是没有任何东西会被打印出来。 我也尝试执行“连接”callback里面的写入,但我有相同的结果。 奇怪的是,当我在Node REPL中尝试这个function时,它可以工作: $ node > var net = require('net') undefined > var client = net.connect(1234, 'localhost') undefined > client.on('data', […]

用telnettesting节点的websockets

我正在使用ws库在Node js中编写一个基于套接字的服务器,我想testing我的代码是否工作。 我已经看到其他地方使用telnet来testing简单的聊天服务器,但是当我启动我的服务器并执行telnet 127.0.0.1 5000,虽然输出显示“连接到本地主机”,我的服务器不会logging任何与新连接关联的任何东西。 我testing我的服务器错误或是我的服务器根本无法正常工作? 我的服务器代码如下: var WebSocketServer = require('ws').Server , http = require('http') , express = require('express') , app = express() , port = process.env.PORT || 5000; var server = http.createServer(app); server.listen(port); var wss = new WebSocketServer({server: server}); console.log('websocket server created'); wss.on('connection', function(ws) { var id = setInterval(function() { ws.send(JSON.stringify(new Date()), function() { […]

准备一个function,重复使用发电机运行

我正在使用一个nodejs telnet实现,它使用一个事件来提供通知,每次从远程login客户端接收数据时,可以按如下方式进行订阅: client.on('data', [callback]); 我也使用了一个生成器runner(npm上的generator-runner)来执行工作stream。 我遇到的问题是,以这种方式产生值需要更多的承诺:传递一个委托来处理单个值。 我将如何去编写一个可以放置在生成器yield函数中的函数,并且每当我想要产生更多的input时可以重复这个函数? 我已经尝试过使用Baconjs,但是我不认为有阻止在stream上等待一个值的方法,至less我找不到这样的方法。 我愿意接受任何build议。 我唯一真正的要求就是能够将我的工作stream程放在一个平坦的代码块中,而不用链接承诺。 这里是我嘲笑的代码,这根本不起作用: var requirejs = require('requirejs'); requirejs(['telnet', 'baconjs', 'colourise', 'lodash', 'generator-runner'], function(Telnet, Bacon, Colourise, _, Async) { var configureClient = client => { client.do.transmit_binary(); }; Telnet.createServer(client => { var session = { connectedAt: Date.now(), user: { } }, write = _.compose(_.bind(client.write, client), Colourise.encode), readStream = Bacon.fromBinder(function […]

退出本地主机上的客户端,而不断开与本地主机上的服务器的TCP连接(没有FIN数据包)

原来的问题 我用telnet连接到一个node.js TCP服务器(在本地主机上),我试图探索保持活跃的探测。 作为第一个testing,我想用telnet连接到服务器,并以不发送FIN数据包的方式终止telnet会话。 (让服务器认为TCP套接字仍然是'健康的')。不幸的是,我似乎无法find一个聪明的方式来testing这个。 当我从telnet提示符退出telnet时,套接字的end事件在节点中触发。 它显然有一个FIN数据包。 当我kill telnet的进程时,它也干净地退出与FIN数据包的连接,在进程死亡之前。 您是否知道如何在不发送FIN数据包的情况下退出telnet(最好不要连接断开的networking电缆/产生物理networking故障)。 改进的问题 我想用localhost / loopback模拟一个networking故障(实际上没有断开任何接口/networking电缆)。 我想在本地主机上打开客户端和服务器之间的TCP连接。 然后,我希望客户端“死”,而不让服务器知道它已经消失了。 (即不发送FIN数据包)。例如,如果路由器发生故障,这可能发生在真实的networking中。 感谢下面的评论,我已经了解到,当进程死亡(或被强行杀死)时,内核将收集进程拥有的任何开放的端口/套接字,就像我上面的telnet一样,并且通过发送FIN数据包。 所以我需要欺骗内核不closures现有的连接。 那么我怎样才能创build一个客户端进程,保持它的活着,但让它performance得像一个完全死的TCP连接? 剧透 (下面的答案1:使用原始套接字(scapy),让它忽略服务器在初始连接和一些testing数据后发送的任何数据包(例如一段时间之后)) (回答2,来自同事的想法:configurationiptables来切断客户端和服务器之间的stream量,实际的iptables规则在下面注释)

无法从Node.js连接到Telnet服务器

我有一个telnet服务器embedded在一个C ++应用程序,我可以连接到使用telnet没有问题。 我想写一个连接到我的服务器的节点应用程序,我已经试过了 var net = require('net'); var port = 6502 var host = '127.0.0.1' var socket = net.connect(port,host, function() { console.log("Sending data"); socket.write("hello\r\n") socket.on("data", function (data) { console.log("received data"); console.log( data.toString() ); socket.end(); }) }) socket.on("error", function(err) { console.log("Error"); console.log(err); }) 不幸的是我得到的是这个 > node test.js { [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: […]

通过套接字发送命令,但每次都等待响应(Node.js)

我需要通过telnet发送几个命令到服务器。 如果我尝试在每个命令之间没有时间延迟地发送它们,那么服务器就会吓坏了: var net = require('net'); var conn = net.createConnection(8888, 'localhost'); conn.on('connect', function() { conn.write(command_1); conn.write(command_2); conn.write(command_3); //… conn.write(command_n); }) 我猜服务器在发送命令n + 1之前需要一些时间来响应命令n 。 一种方法是写一些东西给日志,并假装“等待”: var net = require('net'); var conn = net.createConnection(8888, 'localhost'); conn.on('connect', function() { console.log('connected to server'); console.log('I'm about to send command #1'); conn.write(command_1); console.log('I'm about to send command #2'); conn.write(command_2); console.log('I'm […]

使用Telnet的Node.js客户端和服务器游戏

我正在尝试使用Node.js创build一个基本的游戏(只有文本),它是'净'的库。 我正在碰壁。 我似乎无法弄清楚如何提示用户input一些信息,并等待用户input这些信息。 这是我到目前为止的代码。 这是相当基本的,当你运行客户端时会打印出2行,然后挂起。 在这一点上,我希望用户能够input信息。 我不确定这里有几件事情: 1.如何让用户input? (更具体地说,是客户端还是服务器端) 2.如何在input按下时将数据发送到服务器? 就Telnet而言,我已经阅读了一些文档,这引出了我的最后一个问题:Node中的Telnet模块是否真的是正确的,还是客户机/服务器创build和通信有更好的select? 客户代码: var connect = require('net'); var client = connect.connect('80', 'localhost'); console.log('Connection Success!\n\n'); client.on('data', function(data) { // Log the response from the HTTP server. console.log('' + data); }).on('connect', function() { // Manually write an HTTP request. //I'm assuming I could send data at this point […]