与节点js的TCP网络网络模块将每个字符而不是单词写入套接字网络模块| NodeJ | Windows上的Telnet

时间:2019-03-02 16:03:04

标签: node.js windows sockets telnet

我将使用Node js的Net模块创建一个聊天服务器,并且尝试将服务器与telnet(在窗口系统上)连接。每当连接的客户端输入telnet会话时,每个字符都会回显到其他客户端的套接字。

预期的输出-输入应该缓冲到下一个换行符,因此当我按Enter键时,它应该回显到其他连接的客户端。

这是我的server.js

const server = require('net').createServer();
let counter = 0;
let sockets = {};
server.on('connection', socket => {
    socket.id = counter++;
    sockets[socket.id] = socket;
    console.log(`Client socket number ${socket.id} connected`); // This is for our confirmation.
    socket.write("Welcome new Client!"); // This is the client side confirmation.
    socket.on('data', data => {
        Object.entries(sockets).forEach(([id, cs]) => {
            if(id != socket.id){
                cs.write(`${socket.id}: ${data}`);
            }             
        })        
    })
    socket.on('end', () => {
        delete sockets[socket.id];
        console.log('Client disconnected.');
    })
})

server.listen(8000, () => console.log('Server Bound'));

From client side

您可以看到,当客户端1键入“ test”时,它会将每个字符回显到其他连接的客户端,而不用等待输入换行符(或回车)。

还要让我知道如何结束Windows上当前激活的telnet会话(由于ctrl + c不起作用,请使用命令提示符)。

0 个答案:

没有答案