Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------ способ кодировки символов base64 числами от 1 до 64 ------
- function fromNumbers(numbers, alphabet)
- local s = ""
- for i = 1, #numbers do
- s = s..string.sub(alphabet, numbers[i], numbers[i])
- end
- return s
- end
- function toNumbers(str, alphabet)
- local nums = {}
- local char
- for i = 1, #str do
- char = string.sub(str, i, i)
- nums[i] = string.find(alphabet, char)
- end
- return nums
- end
- function sendBigStr(str, msgSize)
- print("Передача файла ".. fileName .." по сети...\n\n")
- local ender_net = require("ender-net")
- local msgSize = ender_net.maxMessageSize
- local i, buf, percentile = 0, ""
- local dataSize, sendedDataSize = #str, 0
- ender_net.sendMessage(1, dataSize)
- while true do
- buf = string.sub(str, i + 1, i + msgSize)
- if #buf == 0 then break end
- ender_net.sendMessage(2, toNumbers(buf, base64.chars), 0.05)
- i = i + msgSize
- sendedDataSize = sendedDataSize + #buf
- percentile = math.floor(sendedDataSize / dataSize * 100)
- print(percentile .. "%")
- end
- ender_net.sendMessage(3, {}, 0.3)
- end
- ---------------------------------------------------------
- fileName = ...
- file = require("filesystem").open(..., "r")
- if file == nil then error("Файл не существует") end
- base64 = require("ender-net-base64")
- -- Читаем содержимое файла в переменную fileContent
- local fileContent, buf='',''
- while buf do
- buf = file.read(file, math.huge)
- fileContent = fileContent..(buf or "")
- end
- fileContent = base64.encode(fileContent)
- sendBigStr(fileContent)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement