123

123


рамме

var express = require('express');

var app = express();

var server = require('http').createServer(app);

const fs = require("fs");

var childProcess = require('child_process');


const io = require('socket.io')(server);


// Отслеживание порта

server.listen(3000 , function(request, respons) {

   console.log("Успешное rkrya");

});


// Отслеживание url адреса и отображение нужной HTML страницы

app.get('/', function(request, respons) {

   respons.sendFile(__dirname + '/register2.html');

});




// Функция, которая сработает при подключении к странице

// Считается как новый пользователь

io.sockets.on('connection', function(socket) {

   console.log("Успешное соединение");

   


   // Функция, которая срабатывает при отключении от сервера

   socket.on('disconnect', function(data) {

      childProcess.execSync('rm -rf 2.txt | rm -rf 3.txt | rm -rf pi.java | rm -rf pi.class');

      console.log("Отключились");

   });


   // Функция получающая сообщение от какого-либо пользователя

   socket.on('send mess', function(data) {

   let comp = 0;

   let prog = 0;




   fs.writeFileSync("pi.java", data.name);

   // запись программы в файл


   console.log("1");


   try {

   childProcess.execSync('javac pi.java 2> 3.txt ');

   // //компилирование программы

   

   }

   catch {

   let uio = fs.readFileSync("3.txt", "utf8");   

   console.log("uio");

   io.sockets.emit('add mess', {mess: uio});

   comp=1;

   

   }



   if (comp==0)

   {

      console.log("2");


      try {

         childProcess.execSync('java -classpath . pi 1> 2.txt << MaGiC \n '+data.mess+' \nMaGiC ');

         // Запуск программы и подстановка данных для неё

      }

      catch (e)

      {

         io.sockets.emit('add mess', {mess: "Некорректный ввод данных. Проверьте внимательно"});

         prog=1;

      }

      if (prog==0)

      {

         console.log("3");

         let filecontent = fs.readFileSync("2.txt", "utf8");   

         console.log("4");

         io.sockets.emit('add mess', {mess: filecontent});

         console.log("5");

         childProcess.execSync('rm -rf 2.txt | rm -rf 3.txt | rm -rf pi.java | rm -rf pi.class');

      }

   }

   });


});

Report Page