Size: a a a

2020 February 12

I

Igor725 in pro.lua
Потому что с одним - сервер в ожидании заголовков находится
источник

I

Igor725 in pro.lua
То есть у тебя получится ...:send(text .. '\n\n')
источник

I

Igor725 in pro.lua
А, ну и заголовок Content-Length по стандарту обязателен, если делаешь POST, если мне память не изменяет
источник

I

Igor725 in pro.lua
В общем после заголовков у тебя должна быть отправлена пустая строка, таким образом сервер поймёт, что заголовки кончились и началось тело запроса (если оно нужно вообще), в ответе от сервера такая же петрушка
источник

S

Snusmumriken in pro.lua
Блокирующие сокеты блокируют:
1. До полного приёма (как правило, когда сокет отсоединяется)
2. До таймаута

Есть специальные опции типа tcp:receive("*l"), чтобы принимать построчно (разделитель \r\n или аналог), или tcp:receive(1024), чтобы принять 1024 байта. До момента пока не пришлют — не разблокирует.
источник

S

Snusmumriken in pro.lua
Например, http-сервер, по синхронной классике, принимает запросы примерно так:
local req = {}
local line = tcp:receive('*l')
local a, b, c = line:match("(%w+) (/%S*) (.*)")
req.verb, req.location, req._v = a, b, c

req.headers = {}
-- в конце заголовков идёт пустая строка
line = tcp:receive('*l')
while line ~= "" do
 local k, v = line:match("(.-): (.*)")
 req.headers[k] = v
 line = tcp:receive('*l')
end

local len = req.headers["Content-Length"] or 0
len = tonumber(len)
req.body = len and tcp:receive(len)
--*тут можно прерывать, переходить к чтению следующего запроса и т.д.*
Оно не примет чанковое содержимое, сломается на попытке залить пару гигов (x32) и в целом нифига не асинхронное, но для баловства — вполне.
источник

S

Snusmumriken in pro.lua
Приём соответственно такой:
local resp = {}
local line = tcp:receive('*l')
local a, b, c = line:match("(.-) (%d+) (.*)")
resp._v, resp.status, resp.sstatus = a, b, c

resp.headers = {}
... остальное аналогично серверу.
источник

I

Igor725 in pro.lua
Snusmumriken
Блокирующие сокеты блокируют:
1. До полного приёма (как правило, когда сокет отсоединяется)
2. До таймаута

Есть специальные опции типа tcp:receive("*l"), чтобы принимать построчно (разделитель \r\n или аналог), или tcp:receive(1024), чтобы принять 1024 байта. До момента пока не пришлют — не разблокирует.
Параметр '*l' можно вообще не указывать, кстати
источник

S

Snusmumriken in pro.lua
Нет, нужно чтобы принять до разрыва соединения.
источник

I

Igor725 in pro.lua
Если он не задан, то receive по дефолту строку, разделунную [CR +] LF ждёт
источник

S

Snusmumriken in pro.lua
Дефолтное значение, помнится, *а, то есть до разрыва.
источник

I

Igor725 in pro.lua
источник

S

Snusmumriken in pro.lua
Хмм, тогда чего у товарища не зашло? Интересно.
источник

I

Igor725 in pro.lua
У меня из-за этого на первых порах работы с луёвыми сокетами, как раз и были проблемы. Я думал, что "*a" - дефолтный и не понимал, почему выходные данные бинарные у меня выходили левые какие-то
источник

I

Igor725 in pro.lua
Snusmumriken
Хмм, тогда чего у товарища не зашло? Интересно.
Он не дописал запрос
источник

S

Snusmumriken in pro.lua
А, тощна.

А я всегда указываю что принимаю, и у меня нет проблем ))
источник

ВБ

Валентин Бомбин in pro.lua
Igor725
А, ну и заголовок Content-Length по стандарту обязателен, если делаешь POST, если мне память не изменяет
Спасибо
источник

MC

Mister Code in pro.lua
всем привет! давно хотел задать вопрос знатокам, так сказать. вот все тут же знакомы с опен компьютерс/компьютер крафт модами на майнкрафт. я не встречал публичных серверов с данными модами. все вопросы к админам "почему?" отвечались типо "ломанут". так собственно вопрос: никто не заморачивался или действительно нельзя, скажем так, как то подпилить данные моды, чтобы не было путей обходных, для людей которые с мозгами и могут хакнуть?
источник

f

fgntfg in pro.lua
Могу поднять с CC. И пофиг на попытки взлома.
источник

f

fgntfg in pro.lua
Но зачем?
источник