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

Лидеры


Популярный контент

Показан контент с высокой репутацией 12.08.2022 во всех областях

  1. 1 балл
    Допустим, есть компьютеры A и B, в каждом по сетевой плате (с адресами AAA и BBB), и они соединены проводами. Надо выбрать порт для передачи сообщений - число от 1 до 65535. Затем на сетевой карте приёмника необходимо открыть этот порт (работает до перезагрузки или до закрытия порта): local modemB = require 'component'.modem modemB.open(<открываемый порт>) Теперь с компьютера A можно посылать сообщения - либо широковещательные (всем в сети), либо адресные (кому-то конкретному). local modemA = require 'component'.modem modemA.send('<адрес B>', <выбранный порт>, <данные...>) -- или modemA.broadcast(<порт>, <данные...>) На компьютере B начнут появляться события modem_message, и их можно посмотреть программой dmesg. Как поймать их кодом: local evt = require 'event' local _, receiver, sender, port, distance, data = evt.pull 'modem_message' print(sender, '->', data) Дальше к этому можно прикрепить evt.listen, в зависимости от задачи. Можно сделать автозакрытие порта по выходу из программы, хотя этого я ни разу вроде не видел. Полезные ссылки: https://ocdoc.cil.li/component:modem - API сетевой карты; https://ocdoc.cil.li/component:signals - сигналы компонентов.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...