first commit

This commit is contained in:
s.golasch
2023-08-01 12:47:58 +02:00
commit b1439a55bb
65 changed files with 3085 additions and 0 deletions

43
lib/telnetserver.js Normal file
View File

@@ -0,0 +1,43 @@
'use strict'
const net = require('net')
let server = null
let sockets = []
// cleans the input of carriage return, newline
const cleanInput = data => data.toString().replace(/(\r\n|\n|\r)/gm, '')
// executed when data is received from a socket
const receiveData = (socket, data) => {
const cleanData = cleanInput(data)
if (cleanData === "@quit") {
socket.end('Goodbye!\n')
} else {
for (let i = 0; i < sockets.length; i++) {
if (sockets[i] !== socket) {
sockets[i].write(data)
}
}
}
}
// executed when a socket ends
const closeSocket = socket => {
const i = sockets.indexOf(socket)
if (i != -1) sockets.splice(i, 1)
}
// callback method executed when a new TCP socket is opened
const newSocket = socket => {
sockets.push(socket)
socket.write('Welcome to the Telnet server!\n')
socket.on('data', data => receiveData(socket, data))
socket.on('end', () => closeSocket(socket))
}
// create a new server
module.exports = (port) => {
if (server === null) server = net.createServer(newSocket).listen(port)
return server
}