Перейти к содержимому

YouTuBrine

Пользователи
  • Публикации

    2
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем YouTuBrine


  1. Сделал набросок файлопомойки.

    Очень примитивная штука, даже не факт, что работает.

     

    Сервер:

     

     

    local filesystem = require('filesystem')
    local component = require('component')
    local modem = component.modem
    local event = require('event')
    local file, file1, e
    local port = 1234
    
    --[[
    name, pass, cmd, filename, file
    
    /pomojka
      /name
      /name_share
    ]]
    
    local function main()
      while 1 do
        e = {event.pull()}
        if e[1] == 'modem_message' then
          local path = '/pomojka/'..e[6]..'/'
          if not fs.exists(path) then
            filesystem.makeDirectory(path)
            filesystem.makeDirectory('/pomojka/'..e[6]..'_share/')
            file = io.open(path..'pass.cfg', 'w')
            file:write(e[7])
            file:close()
          end
          file = io.open(path..'pass.cfg', 'r')
          if file:read() == e[7] then
            if e[8] == 'list' then
              if component.filesystem.list(path) ~= nil then
                modem.send(e[3], port, table.unpack(component.filesystem.list(path)))
              end
            elseif e[8] == 'upload' then
              if filesystem.size(path..e[9]) < 2048 then
                print(path..e[9])
                print(e[10])
                file1 = io.open(path..e[9], 'w')
                file1:write(e[10])
                file1:close()
              end
            elseif e[8] == 'download' then
              file1 = io.open(path..e[9], 'r')
              modem.send(e[3], port, file1:read())
              file1:close()
            elseif e[8] == 'delete' then
              filesystem.remove(path..e[9])
            end
          end
          file:close()
        elseif e[1] == 'component_added' and e[3] == 'filesystem' then
          os.excute('mount '..e[2].sub(1, 3)..' /pomojka/')
        end
      end
    end
    
    modem.open(port)
    main()
    

     

     

     

     

    Клиент:

     

     

    local component = require('component')
    local modem = component.modem
    local event = require('event')
    local file, e
    local server = 'address'
    local port = 1234
    
    tArgs = {...}
    modem.open(port)
    
    if tArgs[3] == 'list' then
      modem.send(server, port, table.unpack(tArgs))
      e = {event.pull(5, 'modem_message')}
    if e[3] == server then
        list = table.pack(e)
        for i = 5, #list do
          io.write(list[i]..'\n')
        end
      end
    elseif tArgs[3] == 'download' then
      modem.send(server, port, table.unpack(tArgs))
      e = {event.pull(5, 'modem_message')}
      if e[3] == server then
        file = io.open(tArgs[4], 'w')
        file:write(e[6])
        file:close()
      end
    elseif tArgs[3] == 'upload' then
      file = io.open(tArgs[4], 'r')
      modem.send(server, port, table.unpack(tArgs), file:read())
      file:close()
    elseif tArgs[3] == 'delete' then
      modem.send(server, port, table.unpack(tArgs))
    else
      print('Использование:\n <имя> <пароль> [list]\n <имя> <пароль> [download] <файл>\n <имя> <пароль> [upload] <файл>\n <имя> <пароль> [delete] <файл>')
    end
    
    modem.close(port)
    

     

     

     

    Можно устанавливать RAID на лету.

    Загружать/читать/удалять файлы.

    Ограничение 2 кб на одного пользователя.

    А как узнать имя пользователя и пароль?


  2. Кто может сделать сетевой облачный сервер на OpenComputers?

    Идеи:

     

    • Графический интерфейс
    • Удобный поиск файлов
    • Обмен между компьютерами

    Готово? Пиши в лс!

     

    -----------------------------

     

    Награда - сюрприз! ;)

    • Нравится 1
×
×
  • Создать...