Перейти к публикации
Форум - ComputerCraft

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

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

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

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

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


Блоги

  • TEMP BLOG
  • Робот Байт
  • Fingercomp's Playground
  • DUIIIES ' - блог
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • Another Brick In The Wall
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Создаем собственный сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире майнкрафта, его модификаций и не только
  • Матрица
  • LaineBlog
  • Квантовый блог
  • Велосипедный блог
  • Как Pofigist кодить пытается
  • Блог qwertyMAN'а
  • NullException - DevBlog
  • Гайды для новичков и программы от LuaGamer`a
  • Дача Игоря

Категории и разделы

  • Программирование
    • База знаний
    • Библиотеки
    • Робототехника
    • Сетевые технологии
    • Игры
    • Операционные системы
    • Графика
    • Инфраструктура
    • Программы новичков
    • За пределами Minecraft
    • Всякое-Разное
    • Чулан
    • Стол заказов
    • Конкурсы
  • Игровой раздел
    • Игровые сервера
    • Предложения игроков по улучшению игрового процесса
    • Моды и плагины
    • Гайды, обзоры по модам
    • Жалобы на игроков
    • Заявки на разбан
    • Ивенты
  • Общение
    • Ответы на частые вопросы
    • Вопрос-ответ
    • Вопросник по Lua и модам Opencomputers и ComputerCraft
    • Беседка для программистов
    • Беседка-флудилка
    • Шкатулка
  • Технический раздел
    • Новости проекта
    • Предложения по улучшению работы форума и игровых серверов
    • Проблемы в работе игрового сервера, клиента, форума и их решение
    • Дубль аккаунты
    • Обратная связь
    • Архив

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

Искать результаты, содержащие...


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

  • Начать

    Конец


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

  • Начать

    Конец


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

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

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Gtalk


Facebook


Twitter


Город


Интересы

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

  1. Всем привет! В этой теме я расскажу моей программе ---Удалённом рабочем столе на сети 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 Адрес сервера> Вот и всё=) Надеюсь,эта программа вам будет полезна ! Неплохо было-бы попасть в вайт-лист
  2. Небольшая темка. Смысл уже понятен из заголовка, надеюсь. Возродить OpenNet на ИТ. Зачем? Демонстрировать виртуозность программистов: @Zer0Galaxy и @Krutoy. Повспоминать старый ИТ. Скептикам назло. А вообще — я это просто по рынку прогулялся и увидел аж 10 стэков совершенно ненужных алмазов. Так как они не нужны, можно пустить на такое благое дело. Ваши мысли?
  3. Opennet на RoboCraft Opennet На сервере RoboCraft в данный момент работает сеть Opennet. Любой желающий может к ней подключится,зайдя в зону покрытия сети или получив от меня Opennet карту. Роутеры Условия получения Opennet-карты Для скачивания всякого ПО для WI-FI клиента вбиваем pastebin run qd6eLhs6 Что сделано: Построен ДЦ Сделана основа Opennet'a Что планируем: Поднять DNS-сервер. Поднять Чат-сервер Поднять WEB-сервер Выклянчить у Alex'a ЧЛ Сделать Opennet-карты более доступными Захватить мир P.S. Opennet-карту можно вставить в роутер или напрямую в комп.
  4. На сервере 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. Да и много еще чего.
×