Igor
Вот и весь код
Igor
Не проверял, сейчас просто по быстрому накидал
Igor
Нужно что-то такое
Igor
Клиент стучится на твой сервер под портом 1337, как только accept возвращает клиента, создаётся сокет до удалённого сервера l33t.com под портом 80 и они меняются сообщениями через твой скрипт. Просто сверху накидываешь ещё IO операции для записи содержимого msg в файл и всё, считай твоя задача выполнена.
Igor
Ещё желательно накинуть закрытие клиента твоего и удалённого в случае разрыва соединения с любой из сторон
Snusmumriken
local socket = require'socket' local proxy = {host = "other.com", port = 54321} local tcp = socket.tcp() tcp:settimeout(0) tcp:setsockname("*", 12345) tcp:listen() local clients = {} while true do -- принимаем клиентуру local sock = tcp:accept() while sock do sock:settimeout(0) local conn = socket.connect(proxy.host, proxy.port) conn:settimeout(0) -- [кей][валуй] как [клиент][коннекшн до сервера] self.clients[sock] = conn sock = tcp:accept() end -- смотрим кому что пришло -- все логи можно катать тут for sock, other in pairs(clients) do local data, sstatus, partial = sock:receive("*a") data = data or partial other:send(data) local data, ostatus, partial = other:receive("*a") data = data or partial sock:send(data) -- если кто-то порвал соединение - завершаемся if sstatus == 'closed' or ostatus == 'closed' then sock:close() other:close() clients[sock] = nil end end socket.sleep(0.01) end Чот такое, тоже побырому накидал. Асинхронное и с кучей клиентов. Для каждого клиента можно писать свой лог.
Anonymous
А еле еле тут что-то понял (но понял), а ты говоришь что ты нуб
Igor
И всё равно знаю не так уж и много
Anonymous
И всё равно знаю не так уж и много
Наверное потому что балуешься, а не учишь
Snusmumriken
Баловство — практически идентично обучению.
Snusmumriken
Точнее, даже так: баловство это углублённое обучение конкретной фигулине.
Igor
Чем больше ты знаешь, тем яснее становится понятно, что ты не знаешь ничего
Snusmumriken
Ну лично я изучил луи вдоль и поперёк, и повидал всякого. И уже очень давно не удивлялся, мол "так тут и вот так можно?!". Но луа — это маленький ЯП, его можно практически полностью изучить за несколько лет.
Snusmumriken
А вот языконезависимые технологии — это страшно, да.
Igor
С Lua у меня по большей части если и возникают проблемы то с сишным api, зачастую сложно представить, что именно в себе держит стек, а на его разборы с вспомогательными функциями лень тратить силы и приходится в слепую фигачить.
Snusmumriken
Лол, а ты жесток ))
Snusmumriken
Собственно, примерно та же фигня, только я таки печатаю стеки в процессе каждого шага.
Anonymous
Я придумал 4 точку координаты
Anonymous
Есть x y z , а я новую придумал
Igor
Мне также не всегда понятно, какая функция утаскивает значение из стека, а какая его там оставляет, приходится каждый раз лезть в мануал
Anonymous
4х мерное пространство
Snusmumriken
Ну дык.
Igor
Четырёхмерное пространство придумали задолго до тебя
Igor
Я придумал 4 точку координаты
Igor
Есть x y z , а я новую придумал
Anonymous
Просто они говорят что не могут придумать куда эту 4ую точку впихнуть
Anonymous
Нам это не понять, как и в 2д не понять точку z
Snusmumriken
Ну класека физики — это время. Типа, все объекты на самом деле четырёхмерны, когда ты двигаешь шарик — он становится четырёхмерной закруглённой колбасой. Типа мы изменили форму плоской фигни по времени — и она стала трёхмерной.
Anonymous
В 2д только верх, низ, перед, назад. В 3д только верх, низ, перед, назад, вправо, влево А так как в 3д в какую сторону не посмотри везде есть или x, или y, или z , значит не тут смотреть. Можно сказать разрушить пространство и заглянуть внутрь вершины этих углов , хз как ещё объяснить
Snusmumriken
Самое приятное то, что степени свободы всяких шарниров по времени можно представить как супер-многомерную фигню, и сложные движения манипулятора, например, на движущемся сварочном конвейере (с подлезаниями во всякие глубокие жопы) превращаются в обычную коллизию, просто многомерную.
Igor
Что-то случайно вспомнил, как несколько лет назад пилил свою псевдо-3D библиотеку для love2d
Igor
В целом да
Igor
Пытался сделать что-то типа дума, текстуры я не делал, просто полигоны разноцветные, обведённые по бокам, чтобы хоть как-то пространство различать
Igor
На гитхабе подобных проектов пруд пруди, но я решил накатить что-то своё
Anonymous
Мне кажется, что разрабы дума намного больше знают, чем разработчики современных игр
Snusmumriken
Нам это не понять, как и в 2д не понять точку z
Вот тебе очешуительная статья по "измерениям" https://habr.com/ru/post/349044/
Igor
Мне кажется, что разрабы дума намного больше знают, чем разработчики современных игр
Познания человека в какой-то области определяются далеко не так, как тебе кажется
Snusmumriken
Круть!
Если оно не работает — пофикси.
Валентин
Если оно не работает — пофикси.
понял чего не понимал - эту фишку с хранилищем соединений и с подключеним
Snusmumriken
Гусь-выбирусь
Anonymous
Вкусный чай? Или что ты там пьешь
Anonymous
Не связано с картинкой
Anonymous
Я про аватарку
Snusmumriken
Сосисочки, непонятный салатик
Snusmumriken
понял чего не понимал - эту фишку с хранилищем соединений и с подключеним
Тут основная фишка — нулевые таймауты и эксплуатация partial. В partial приходит кусочек того что прислали, тут могут быть неполные данные (кто-то что-то недослал, не успел по таймауту, например), но если мы всё пересылаем — это более чем ок, следующий кусочек будет в следующем partial. А нулевые таймауты используются для того, чтобы обрабатывать одновременно кучу клиентов: пока один что-то шлёт, мы обращаемся к другому.
Snusmumriken
Схема взаимодействия data и partial примерно следующая, поэтому data = data or partial — корректная фигня
Anonymous
И глубина слоя, влияющая на порядок отрисовки.
Я имею ввиду с точки зрения персонажей в игре
Anonymous
В игре там или хз где 2д
Lucky
с точки зрения персонажей всё одномерно в 2д-игре
Lucky
так же как для тебя восприятие 3д двумерно.
Snusmumriken
Ой, ну не скажи. У персонажей есть две степени свободы.
Lucky
вращение и сдвиг7
Snusmumriken
Просто сдвига достаточно. Мы сейчас не про тангажную фигню.
Lucky
и один фиг они видят линию
Snusmumriken
А откуда ты знаешь, бинокулярность точно так же работает в плоском пространстве.
Lucky
это уже иллюзия восприятия
Snusmumriken
Аа, значит мы живём в плоском двухмерном мире, потому что у нас плоская сетчатка, да? : )
Lucky
точно такая же как иллюзия трёхмерного пространствыа у нас
Lucky
нет, не так
Snusmumriken
Почему? В чём разница?
Lucky
мы видим плоский мир
Lucky
и в голове додумываем его
Snusmumriken
с точки зрения персонажей всё одномерно в 2д-игре
То есть, если перефразировать, с точки зрения нас, всё двухмерно в 3д-пространстве, да?
Korsar
Lucky
ну, ты же умный - запили одномерный рендер
Lucky
нет
Snusmumriken
В чём разница?
Lucky
мы двумерно воспринимаем 3д-мир
Snusmumriken
То есть, с нашей точки зрения, всё двухмерно в 3д-пространстве? Это то же самое, кстати.
Lucky
и потом преобрасуем его в иллюзию зд в голове
Snusmumriken
А откуда ты знаешь что двухмерные персонажи не делают то же самое? : )