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

Требуется помощь

Вопрос

Понадобилось написать чат между двумя компьютерами. Толком синтаксис сетевой карты я не понял, потому что не нашёл добротный гайд. Да и в принципе я чайник полный, что касается всех этих сетевых штучек. Может натолкнёте на мысль или предложите готовое решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Сетевая карта это какое? Интернет карта? Проводная карта? Или беспроводная?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 10.08.2022 в 03:33, skorikoff сказал:

Понадобилось написать чат между двумя компьютерами. Толком синтаксис сетевой карты я не понял, потому что не нашёл добротный гайд. Да и в принципе я чайник полный, что касается всех этих сетевых штучек. Может натолкнёте на мысль или предложите готовое решение?

Если чат нужен только между двумя компами, проще всего это будет сделать, использовав этот компонент. Связанная_плата

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 10.08.2022 в 01:33, skorikoff сказал:

Толком синтаксис сетевой карты я не понял, потому что не нашёл добротный гайд. Да и в принципе я чайник полный, что касается всех этих сетевых штучек.

Допустим, есть компьютеры 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, в зависимости от задачи. Можно сделать автозакрытие порта по выходу из программы, хотя этого я ни разу вроде не видел.

 

Полезные ссылки:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...