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

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

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

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

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

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


Блоги

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

Форумы

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

Категории

  • Форум
  • Лаунчер
  • Игровой сервер

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

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


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

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


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

  • Начать

    Конец


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

  • Начать

    Конец


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

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

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

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

  1. Очередная сеть на OpenComputers модемах. Децентрализованная, одноранговая, как Zn, только лучше. Каждый узел сети видит все остальные и может отправить/принять сообщение на любом расстоянии. Отличия от сети Zn: Динамическая маршрутизация. Zn затапливает все узлы каждым сообщением. Moonlink же передает сообщение по самому короткому пути и никто, кроме промежуточных узлов, сообщение не видит. При изменении топологии сети, маршруты перестраиваются. Можно передавать больше одной строки за раз. Установка: wget https://raw.githubusercontent.com/OpenPrograms/zgyr-Programs/master/moonlink/moonlink.lua /usr/lib/moonlink.lua или через oppm oppm register OpenPrograms/zgyr-Programs oppm install moonlink Функции: connect([порт: number]) подключиться к сети, стандартный порт 8431, можно задать свой. disconnect() отключиться от сети. send(адрес: string, ...) послать сообщение узлу с указанным адресом. ping() принудительный пинг соседей (запрос маршрутов у соседних узлов). list():table получить список доступных узлов в сети. Событие только одно: moonlink_message(receiver_addr: string, ...) адрес получателя и сообщение. Пример использования: local event = require('event') local moonlink = require('moonlink') moonlink.connect() while true do local _, address, message = event.pull('moonlink_message') if message == 'bye' then break else print(message) end end moonlink.disconnect()
  2. Всем привет! В этой теме я расскажу моей программе ---Удалённом рабочем столе на сети OpenNet и моде OpenComputers. Первым делом расскажу как ей пользоваться. Ввод данных: Всё очень просто=) Жмёте на кнопку на клавиатуре, и её нажатие эмитируется на удалённом компьютере. Для обновления экрана --- F5 Для выхода из программы на удалённом компьютере --- F2 Для выхода из программы на локальном компьютере ---F1 Ну....Вроде всё по управлению=) Запуск,настройка и подключение: Подготовка к запуску удалённого терминала: Установить библиотеку thread: local computer = require("computer") computer.SingleThread = computer.pullSignal local thread = {} local mainThread local timeouts local function MultiThread( _timeout ) if coroutine.running()==mainThread then local mintime = _timeout or math.huge local co=next(timeouts) while co do if coroutine.status( co ) == "dead" then timeouts[co],co=nil,next(timeouts,co) else if timeouts[co] < mintime then mintime=timeouts[co] end co=next(timeouts,co) end end if not next(timeouts) then computer.pullSignal=computer.SingleThread computer.pushSignal("AllThreadsDead") end local event={computer.SingleThread(mintime)} local ok, param for co in pairs(timeouts) do ok, param = coroutine.resume( co, table.unpack(event) ) if not ok then timeouts={} error( param ) else timeouts[co] = param or math.huge end end return table.unpack(event) else return coroutine.yield( _timeout ) end end function thread.init() mainThread=coroutine.running() timeouts={} end function thread.create(f,...) computer.pullSignal=MultiThread local co=coroutine.create(f) timeouts[co]=math.huge local ok, param = coroutine.resume( co, ... ) if not ok then timeouts={} error( param ) else timeouts[co] = param or '' end return co end function thread.kill(co) timeouts[co]=nil end function thread.killAll() timeouts={} computer.pullSignal=computer.SingleThread end function thread.waitForAll() repeat until MultiThread()=="AllThreadsDead" end ------------------------------------------------------------------------------- return thread (Только на сервер,на клиенте она не нужна) Установить OpenNet и находится в зоне его покрытия. Установить на сервер его часть: local event= require("event") local thread= require("thread") local opennet= require("opennet") local computer= require("computer") local gpu= require("component").gpu local unicode= require("unicode") local keyboard= require("component").keyboard.address local IP, dis2serv = opennet.getIP() print("Local IP: "..IP) args={...} if args[1]==nil then print("Использование: openviewerS <opennet_ip>") os.exit() end --[[ _, result, reason = opennet.sendrec(args[1], "connecting...") if result==false then print(reason); os.exit() end if args[1]==IP then print("Невозможно инициализировать удалённый доступ со своим устройством.") os.exit() end ]]-- initial=args[1] local function getScreen() screen="" for y=1, 25 do for x=1, 80 do symbol = gpu.get(x, y) screen=screen..symbol end end return screen end local function sendScreen() opennet.send(initial, getScreen()) end function runShell() os.execute("sh") end function reInitial() thread.killAll() thread.init() thread.create(runShell) thread.create(EmulateSignal) thread.waitForAll() end event.listen("Screen", sendScreen) event.listen("Exit", reInitial) function EmulateSignal() while true do opennetIP, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 = opennet.receive() if opennetIP==initial then computer.pushSignal(arg1, keyboard, tonumber(arg3), tonumber(arg4), arg5) end end end thread.init() thread.create(runShell) thread.create(EmulateSignal) thread.waitForAll() Установить на клиент клиентскую часть: local opennet= require("opennet") local term= require("term") local unicode= require("unicode") local event= require("event") args={...} if args[1]==nil then print("Использование: openviewerC <opennet_ip>") os.exit() end initial=args[1] function getScreen() repeat ip, screenRaw=opennet.receive() until ip==initial for sym=1, #screenRaw-160 do io.write(unicode.sub(screenRaw, sym, sym)) end end term.clear() opennet.send(initial, "Screen") getScreen() while true do arg1, arg2, arg3, arg4, arg5 = event.pull() if arg1=="key_down" and arg3==0 and arg4==63 then term.clear() opennet.send(initial, "Screen") getScreen() elseif arg1=="key_down" and arg3==0 and arg4==59 then os.exit() elseif arg1=="key_down" and arg3==0 and arg4==60 then opennet.send(initial, "Exit") else opennet.send(initial, arg1, arg2, arg3, arg4, arg5) end end Для запуска программы надо написать на сервере: openviewerS <IP Адрес клиента> ВНИМАНИЕ!!! Надо ввести именно IP, а не DNS; Единственное поддерживаемое разрешение - 80x25 На клиенте же пишем: openviewerC <IP Адрес сервера> Вот и всё=) Надеюсь,эта программа вам будет полезна ! Неплохо было-бы попасть в вайт-лист
  3. Небольшая темка. Смысл уже понятен из заголовка, надеюсь. Возродить OpenNet на ИТ. Зачем? Демонстрировать виртуозность программистов: @Zer0Galaxy и @Krutoy. Повспоминать старый ИТ. Скептикам назло. А вообще — я это просто по рынку прогулялся и увидел аж 10 стэков совершенно ненужных алмазов. Так как они не нужны, можно пустить на такое благое дело. Ваши мысли?
  4. 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-карту можно вставить в роутер или напрямую в комп.
  5. На сервере 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. Да и много еще чего.
×
×
  • Создать...