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

Поиск по сайту

Результаты поиска по тегам 'сеть'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Путешествия Xytabich'а
  • Рецепты программирования
  • Шкодим по крупному
  • 123

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Корзина

Группы продуктов

Нет результатов для отображения.


Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

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

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 9 результатов

  1. Помните мост Рида? Ну так вот. Я тут изучаю Rust на досуге, и пишу мини проекты. Так и получился у меня... Stem Это интернет мост для OpenComputers. Что такое мост Для тех кто не знает что такое мост, и для чего он нужен: мост дает примерно такие же возможности как и linked карта. Он позволяет связать между собой компьютеры OpenComputers, где бы они не находились. Только мост реализует это через интернет карту. Однако по сравнению с linked картой есть один очень крутой плюс. Вы можете подключиться к своему OpenComputers компу не только с другого OpenComputers компа из Майнкрафта, но и из реального мира. Например с телефона. Или с вашего домашнего компьютера. Отличие от моста Рида Я немного по другому подошел к архитектуре проекта. Вместо попарного соединения, Stem реализует систему каналов. Работает это очень просто. Вы можете: 1) послать сообщение в канал X 2) подписаться на сообщения из канала X Количество подписчиков не ограничено. Количество клиентов которые могут посылать сообщения в канал тоже не ограничено. ID канала (по которому происходит подписка и отправка сообщений) служит заодно и паролем к нему. Поэтому если вы хотите создать публично доступный канал - просто опубликуйте его ID. А если хотите создать свой, приватный, канал - просто возьмите ID подлиннее и никому его не открывайте. ID - это последовательность любых байт длиной до 256. Число комбинаций (256 в степени 256) это огромное число, так что уникальных ключей хватит надолго. Пример local event = require('event') -- подключаем STEM local stem = require('stem') -- присоединяемся к серверу STEM local server = stem.connect('stem.fomalhaut.me') -- просим сервер присылать нам сообщения с канала 'my-channel-id' server:subscribe('my-channel-id') -- слушаем эвент 'stem_message' в цикле while true do local name, channel_id, message = event.pull('stem_message') if name ~= nil then print(channel_id, message) end end -- ...или регистрируем листенер event.listen('stem_message', function(_, channel_id, message) print(channel_id, message) end) -- мы можем посылать сообщение в канал -- (причем не обязательно быть подписанным на этот канал -- достаточно просто его ID) server:send('my-channel-id', 'hello there') -- просим сервер перестать присылать сообщение с канала server:unsubscribe('my-channel-id') -- полностью отключаемся от сервера STEM server:disconnect() Одновременно можно работать с несколькими серверами Stem и с любым количеством каналов. Библиотека stem.lua Библиотечку можно скачать напрямую по этой ссылке: https://gitlab.com/UnicornFreedom/stem/raw/master/stem.lua Либо установить через HPM: hpm install stem Подробная документация по командам библиотеки находится здесь. Сервер STEM Дефолтный сервер STEM запущен у меня на VPS по адресу: https://stem.fomalhaut.me/ Можете смело его использовать. Единственное, что это тестовый сервер пока. Может пропадать или менять протокол. Новости постараюсь писать сюда. Исходный код проекта находится тут: https://gitlab.com/UnicornFreedom/stem Вы можете скомпилировать его под свою систему и запустить где угодно. Настраивается сервер файлом stem.toml в корневой папке. Дефолтный конфиг может выглядеть так: [tcp] host = '127.0.0.1' port = 5733 [web] host = '127.0.0.1' port = 5780 [general] ping_interval = 60 Чтобы получить полностью свой отдельный и независимый сервер STEM, достаточно будет просто запустить бинарник, получившийся после компиляции. Не забудьте также положить в папку с бинарником папки static и templates. Они нужны для веб-интерфейса. Сервер мультипоточный, и очень производительный. Должен тянуть довольно большие объемы трафика. Но точных бенчмарков я не проводил. Если есть желающие - пишите в IRC, скооперируемся и померяем. 😃 Для того чтобы видеть логи сервера, используйте переменную окружения RUST_LOG. Например чтобы включить полное отображение всех логов: $ RUST_LOG=stem ./stem Веб-интерфейс Если перейти по ссылке на сервер STEM то вы увидите... веб-интерфейс. Веб интерфейс показывает счетчик активных каналов и сессий (клиентских подключений). Кроме того, он дает возможность подключиться к любому каналу STEM и поучаствовать в приеме-передаче сообщений прямо через сайт. Единственное ограничение - как ID канала, так и контент сообщений ограничивается тем, что можно закодировать в UTF-8. Ну вот и все Мост в принципе уже полностью работоспособен. Все идеи, пожелания, отчеты о багах пишите сюда, либо на issue трекер в репозитории. Если кто-нибудь хочет помочь с написанием клиента STEM на своём любимом языке программирования - обращайтесь ко мне в ЛС, IRC или пишите в этой теме. Написать клиент несложно - для примера можно глянуть на код библиотеки для OpenComputers. Она состоит всего из 150 строк кода. Enjoy! 😃
  2. Некоторое время назад возникла необходимость иметь доступ к файлам с разных компьютеров. Для такого уже есть программка от @Zer0Galaxy, но ей невозможно пользоваться, поскольку сервер падает при открытии файла (ибо модем заставляют переслать таблицу с функциями файла, а он в такое не умеет). В октябре я засел писать свою версию (еще не зная о программе "FTP"), писал с большими перерывами, а потому первая более-менее рабочая версия у меня получилась только сейчас. Данная система работает несколько иначе, она выделяет под сервер не определенную папку, а диск целиком, являясь, фактически, прокси-прослойкой между диском сервера и ОС клиента, также на стороне сервера есть два уровня логирования запросов (в текстовый файл). "Лэйбл" передается напрямую с реального удаленного диска, адрес тоже соответствует реальному, но без всех тире и с приставкой "-rfs". Посмотреть весь код можно на ГитХабе Как развернуть сеть: Про режимы работы и уровни логирования: Примите во внимание, что обмен сетевыми пакетами требует некоторого времени, поэтому чтение/запись данных (особенно малыми блоками) может занять продолжительное время. Возможно, в будущем, попробую снизить задержки. Еще, если кто-то нашел в программах баг или недоработку (а таких может быть много), просьба сразу сообщить об этом. А если вы еще и скажете, как решить эту проблему, то цены вам не будет))).
  3. Иногда надо связать несколько компьютеров на большом расстоянии или между мирами, или даже между серверами. Так как у нас есть интернет-карта, можно провернуть несложный хак - пустить информацию через внешний сервер. Но чтобы не писать серверную часть, можно использовать готовый протокол с готовыми серверами. Получается крутая связанная карта для многих компов. Данная программа реализует IRC мост, по которому могут общаться не только опенкомпы, но и любые устройства с интернетом. Например, можно с мобильника дать команду своим компьютерам на нескольких игровых серверах. Использование: Скачать программу pastebin get CmLFFF7g /bin/imodem.lua Проверить наличие интернет-карты в компьютере Запустить программу imodem В течении некоторого времени будет устанавливаться связь, а затем можно работать с модемом. Чтобы послать сообщение всем устройствам на канале, есть функция imodem.broadcast( сообщение: строка ) Чтобы послать сообщение по определенному адресу - imodem.send( получатель: строка, сообщение: строка ) Для разрыва связи и прекращения работы - imodem.stop() А чтобы принимать сообщения, достаточно ловить событие modem_message, как у обычных модемов. Адрес сервера и канал можно изменить в коде программы, желательно иметь сервер без обрезания ников и защиты от флуда.
  4. Всем привет! Недавно решил проверить, что тут у вас и был огорчен - меня забанили на форуме Но сейчас не об этом! Как вы уже, наверное, поняли из названия темы, здесь будет кое-что интересное! А именно, я написал нейронную сеть. Она еще не дописана до конца, но один учитель есть, и она уже вполне может функционировать. Вот исходник: https://github.com/MrSyabro/Neuro Вот пример программы: local neuro = require("Neuro") network = neuro.Neurons:CreateNetwork (neuro.AFunctions:BipolarSigmoidFunction(), {3, 5, 5, 3}, neuro.Neurons.ACompute) inputs = { {1, 0, 1}, {0, 0, 1}} outputs = { {0, 1, 0}, {1, 1, 0}} for i = 1, 50 do print(neuro.Learning.BackPropagationLearning:RunEpoch(network, inputs, outputs)) end При вызове ф-ции Createnetwork кроме "{3, 5, 5, 3}" лучше ничего не трогать. Эта таблица определяет параметры сети. А именно слои и кол. нейронов в них. Первый слой входной, 3 нейрона - 3 входа, 2 по центру - скрытые, последний - выходной. "inputs" и "outputs" - таблицы наборов уроков (подобраны случайно). {1, 0, 1} - вход, соответствует {0, 1, 0} выходу. Далее 50 циклов уроков с выводом общей погрешности сети. Вот только... Lua не нравится огромные значения после запятой.. так что получается "-1.#IND"
  5. AlexCat

    Opennet на RoboCraft

    Opennet на RoboCraft Opennet На сервере RoboCraft в данный момент работает сеть Opennet. Любой желающий может к ней подключится,зайдя в зону покрытия сети или получив от меня Opennet карту. Роутеры Условия получения Opennet-карты Для скачивания всякого ПО для WI-FI клиента вбиваем pastebin run qd6eLhs6 Что сделано: Построен ДЦ Сделана основа Opennet'a Что планируем: Поднять DNS-сервер. Поднять Чат-сервер Поднять WEB-сервер Выклянчить у Alex'a ЧЛ Сделать Opennet-карты более доступными Захватить мир P.S. Opennet-карту можно вставить в роутер или напрямую в комп.
  6. Иногда случается такое, что ваши компьютеры расположены на расстоянии большем, чем стандартные 400 блоков. Wi-Fi отказал, а вам надо связать компьютеры по сети. Какие тут есть варианты? 1) Повысить лимит в конфиге. Это просто, но не всегда возможно. 2) Использовать linked карту. С её помощью можно пробить любое расстояние, да. Но тут есть несколько своих проблем. Она связывает компьютеры только попарно. Для связи нескольких компьютеров надо уже делать сложную систему проброса сообщений. Она занимает дополнительный слот. И т.п. 3) Использовать цепочку Wi-Fi карт Казалось бы, чем это проще второго варианта? А проще оно тем, что тут есть уже готовые библиотеки. =) Интермедия Когда-то в стародавние времена, когда трава была зеленее и птички пели громче, собралась на нашем сервере компания крутых парней и написала OpenNet. Это была полноценная компьютерная сеть. Этакий местный интернет. Она обладала своей строгой и надёжной топологией. Каждый узел - своим местом и адресом в сети. Никакой анархии. Хочешь - в чатике общайся. Хочешь - сайты строй. К сожалению, исходники и гайды до сих пор разбросаны по частям по всему форуму. Чтобы собрать это снова вместе, потребуется немало усилий. Да и зачем нам поднимать полноценный "интернет", если всё, чего мы хотим - это пробросить парочку сообщений туда-сюда? Поэтому в более новые и не такие добрые времена (птички потише, трава потускнее), некто Totoro и fingercomp придумали систему попроще и погибче. И назвали её Zn. Приступаем к решению Итак, как нам связать Васю и Олю, которые живут на противоположных краях Земного Блина? 1) Через микроконтроллёр Самое дешёвое в плане ресурсов решение - собрать микроконтроллёр, прошить его и закопать где-нибудь в лесу на полпути между Васей и Олей. Сначала нам потребуется код прошивки. Он идёт в комплекте с Zn библиотекой. Как цивилизованные современные люди, мы скачаем её с Hel-репозитория: hpm install zn Теперь в папке /usr/share/zn/ у нас есть файлик eeprom.lua. Который мы и прошиваем на чистый EEPROM: flash -q /usr/share/zn/eeprom.lua "Zn node" Всё. Осталось вставить чип в контроллер, включить его и закопать. Сеть создана! 2) Через компьютер Более солидное и основательное решение. Строим в лесу будку. В будке ставим компьютер. На компьютер устанавливаем OpenOS и HPM (если он не идёт в комплекте). Снова качаем библиотеку: hpm install zn Создаём мини скрипт: edit node.lua Пишем в нём такой код: (require ('zn')).connect() Сохраняем, выходим, запускаем его: node Всё! Скрипт выполнится и завершится, а в фоновом режиме останется работать демон Zn-сети, который будет пробрасывать сообщения. По желанию можно сделать скрипт более сложным - например выводить на экран сетевой трафик и другую полезную инфу. Также можно добавить скрипт в автозапуск компьютера, чтобы даже неожиданные сбои питания (белка залезла в трансформатор) не смогли повалить сеть. Эти два варианта обладают некоторыми недостатком, конечно. Чтобы ретранслятор работал автономно, надо ставить чанклодер и источник энергии. Однако, в силу своей гибкости, Zn сеть можно организовать и по другому. Поднять, так сказать, "лайт версию" ретранслятора. 3) Через планшет Устанавливаем на планшет OpenOS и ставим библиотеку и скрипт по методике #2. Далее, вручаем планшет соседу Пете и забиваем ему стрелку в том самом лесу. На протяжении X минут (где X зависит от терпения Пети) у вас будет полноценная сеть! Игрок будет служить чанклодером, а батарея планшета источником питания. 4) Через робота Строим робота, устанавливаем скрипт по методике #2. Затем ставим робота где-нибудь в незаметном месте (можно спрятать в кроне дерева, так чтобы свет солнца падал на солнечную батарею). Всё, мобильный ретранслятор готов. Если чанклодеры к роботам разрешены, он может существовать автономно долгое время, питаясь солнечной энергией. 5) Через дрон Прошиваете EEPROM как для микроконтроллёра, заряжаете в дрона. Дрона запускаете в свободный полёт над лесом. Готово! Хотя чанклодер всё равно нужен. Так что вам наверное придётся пастись где-то рядом. Этот вариант самый сложный, потому что если вы хотите управлять дроном (например, с планшета) то вам потребуется модифицировать прошивку и добавить блок управления. Зато запустив 1000 дронов, вы можете почувствовать себя Илоном Маском, или Цукербергом, раздающим Интернет папуасам. А как теперь этой сетью пользоваться? Все просто. Это делается почти как с обычным модемом. Только вместо модема вы используете библиотеку Zn. Если вы знаете адрес модема адресата - можете послать сообщение прямо на него. И не важно, через сколько промежуточных узлов оно должно будет пройти. До тех пор пока адресат в радиусе досягаемости хотя бы одного узла вашей сети - он ваше сообщение получит. -- подключаем библиотекуlocal zn = require('zn')-- коннектимся к сетиzn.connect()-- посылаем Оле сообщениеzn.send("адрес модема Оли", "сообщение для Оли")-- при завершении программы не забываем закрыть коннект-- (можно и не закрывать, но зачем тратить ресурсы компа зазря)zn.disconnect() Ну а если адресат неизвестен, можно кинуть сообщение бродкастом. Тогда его получат все, кто подключен к сети. И адресат, конечно тоже. local zn = require('zn')zn.connect()-- посылаем сообщение всем, кто подключён к сети (Оле в том числе)zn.broadcast("сообщение для Оли")zn.disconnect() Удачи в построении своих сетей. Enjoy Zn!
  7. Хей! Так как я сейчас пилю с одним человеком одну штуку, связанную с сетью в OpenComputers, мне потребовалась программа, которая могла бы показывать, какие пакеты посылаются, причём мониторить хотелось как исходящий трафик, так и входящий. Собственно, именно это я и напилил на формочках @Zer0Galaxy: Работает предельно просто: запускаем, шлём сообщения, смотрим. В верхней части находится список сообщений, снизу написана инфа о нём. Ещё ниже находится поле с данными, которые были посланы в пакете. Переключаться между разными частями пакета можно с помощью списка справа (не забывайте про скролл). Под списком справа находится количество всех частей пакета. Установка: Качаем hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?p=27287 Ставим прогу: hpm install sniff.
  8. На сервере Information Technology начинает работу глобальная сеть OpenNet. В отличии от децентрализованной сети CraftNet, новая сеть построена на компактно расположенных серверах. Связь клиента с одним из серверов осуществляется при помощи пары связанных плат, одна из которых установлена в сервер, другая находится у клиента. Каждый сервер способен обслуживать до трех клиентов. Таким образом связь защищена от прослушивания, а покрытие Сети полностью охватывает все доступные миры сервера Information Technology. Что может и чего не может сеть OpenNet? Если вы думаете, что подключившись к Сети вы получите все мыслимые и немыслимые блага, то вы ошибаетесь. Сеть это просто средство обмена информацией между двумя и более компьютерами. Как будут запрограммированы эти компьютеры и какого рода информацией будут обмениваться, зависит только от вас (ну и от меня, в какой-то мере) Что необходимо, чтобы подключиться к сети OpenNet? Во-первых, ОС-компьютер с установленной операционной системой. Во-вторых, библиотека opennet.lua, которую можно найти под спойлером или скачать при помощи команды pastebin get VYqtYAXL opennet.lua В-третьих, OpenNet-плата. Где взять OpenNet-плату? Количество плат, которые могут быть подключены к Сети, ограничено. Поэтому, массовых раздач я устраивать не собираюсь. Людям, которые проявили себя в программировании, я готов предоставить платы при личной встрече на сервере. Остальным, возможно, придется приобретать их в банке. Очень рассчитываю при этом на помощь наших банкиров: Тоторо и Алекса. Какие функции предоставляет библиотека opennet? getIP() - осуществляет инициализацию компьютера в Сети. В случае удачной инициализации, возвращает IP-адрес компьютера. В случае ошибки, возвращает два значения: nil и строку, содержащую информацию об ошибке. Следует отметить, что IP-адрес статический. Это значит, что при помощи одной ON-платы вы всегда получите один и тот же IP-адрес. Но это не избавляет от необходимости вызывать getIP всякий раз в начале работы с Сетью. send(recIP, ... ) - отправляет данные на адрес recIP. Одним пакетом можно отправить несколько значений, которые должны быть числами, строками и/или логическими величинами. Суммарный объем данных, отправляемых в одном пакете, не должен превышать 8 кБ. Функция возвращает true, в случае удачной отправки или nil и сообщение об ошибке, в противном случае. Если функция вернула true, это означает, что данные были отправлены, но еще не означает, что они были приняты получателем. receive([timeout]) - ожидает приема данных. Если задан параметр timeout, время ожидания ограничивается. В случае приема данных, возвращает первым значением адрес отправителя, затем - принятые значения. В случае таймаута, возвращает nil. sendrec(recIP, ... ) - это просто объединение функций send и receive. Отправляет данные и возвращает полученный ответ. Очень удобно при работе из интерактивного интерпретатора. А можно пример работы с библиотекой? Пожалуйста. На принимающем компьютере выполним следующие команды: После этого компьютер переходит в режим ожидания. Запомним (или, в моем случае, запишем) IP-адрес. На другом компьютере выполним команды для передачи данных на этот адрес: Теперь посмотрим на принимающий: К стати, если отправить данные на несуществующий адрес, в ответ от сервера будет получено сообщение: Каковы перспективы развития Сети? 1. Для начала планирую сделать DNS-сервер, чтобы можно было отправлять данные на удобочитаемые имена.(реализовано) 2. Создание чата, в котором школьники смогут материться не рискуя навлечь на себя гнев администрации (реализовано). 3. Организация доступа к OpenNet через обычную сеть путем установки роутеров в местах проживания игроков. (реализовано) 4. WEB-сервера с полезной или просто интересной информацией. Благо теперь на русском (требуется наполнение web-страниц). 5. Служба pastebin для доступа к известному ресурсу в условиях отсутствия интернет-платы (реализовано) 6. Да и много еще чего.
  9. Итак граждане. Последний стабильный билд геокопалки меня радует, находится сейчас на тестировании, багов пока не обнаружено. Пришло время для нового этапа(с которого по уму следовало бы начинать!) - создание сетевых функций, для вайфы и наверно параллельно для линки тоже. Задача минимум - стабильная передача статов робота по запросу: координаты, основные состояния(топливо, инструмент, процент выполнения текущей задачи). Программа максимум: Автоматизированный сетевой обмен робота со станцией, передача вышеперечисленных величин, возможность "нажать красную кнопку"(остановить робота и вернуть на базу), графическое приложение для планшета(в том числе 2д макет выполняемой задачи, например отрисовка слоя(этажа) руд, в которых оперирует робот, его положение на этой "схемокарте", указание последовательности пути(для анализа)), графическое приложение для рабочей станции(комп с голографическим проектором), функции схожи с планшетной версией, но в 3д, возможность дистанционного управления(указать новое место и запустить нужную программу). На данный момент в сетевых технологиях ОС я довольно таки нуб. Но что успел понять, если робот что то делает(именно робот, аки robot.forward()), то прервать(безопасно) его действие с помощью эвента получения сообщений и не сбить при этом весь алгоритм/функцию(а они у меня многоэтажные) не получится. Нужно действовать апосредованно, не трогая функции использующие пространство имен "robot", тоесть поменять какую то глобальную переменную, проверив которую робот задействует новые алгоритмы. Так ли это? или же существует возможность вмешаться безопасным образом?
×
×
  • Создать...