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

Сообщения между двумя компьютерами

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

Есть два компьютера с СОЕДИНЁННЫМИ КАРТАМИ (парными), нужно создать прогу простейшую для передачи сообщений между ними.

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


Ссылка на сообщение
Поделиться на других сайтах
В 25.10.2020 в 17:39, skorik сказал:

нужно создать прогу простейшую для передачи сообщений между ними.

Если имеется в виду чат, то вот накидал пару строк, но без истории сообщений

Скрытый текст

local com = require("component")
local tunnel = com.isAvailable("tunnel") and com.tunnel or error("нет связанной платы")
local event = require("event")
local term = require("term")

local function receive(_,_,_,_,_,message)
  term.setCursor(1,3)
  term.clearLine()
  term.write("< "..message)
end

event.listen("modem_message", receive)
term.clear()

while true do
  term.setCursor(1,1)
  term.clearLine()
  term.write("> ")
  tunnel.send(term.read())
end

 

p.s. Прога работает, но это так наброски

Изменено пользователем serafim

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


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

https://pastebin.com/GBrch6sX

Скрытый текст

Lb3wCV6.png

 

Добавлено: 

авто определение связанной платы и модема

история сообщений (теперь выглядит как настоящий чат)

удаление последнего символа из строки при написании

несколько цветовых тем

кнопка выхода с завершением event.listen

описание кнопок при запуске

удаление всей строки кнопкой Del

очистка буфера экрана (защита от переполнения)

запрет отправки пустого сообщения, нажимая кнопку enter

звуковое оповещение о сообщении
курсор теперь не мигает при работе с текстом

Изменено пользователем serafim

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


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

@serafim Нормально. Теперь уже получился полноценный чат. Но почему-то, отправка сообщений закомментирована в коде.

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, eu_tomat сказал:

отправка сообщений закомментирована в коде

Упс, отладку в эмуляторе OCEmu делал, а там нет связанной карты, да и модем сам на себя работает.

А майн запускал только пару раз, убедится что прога работает.

 

Поправил (убрал коменты)

 

Есть ещё мелкая бага которую не могу победить:

В русской раскладке при удалении последнего символа нажав Backspace появляется лишний кривой символ,

чтоб удалить приходится 2 раза нажимать Backspace, а в английской раскладке такого не происходит.

 

Операясь на эту статью нашол его 9sjwrZf.png 0x00D0

Скрытый текст

local unicode=require("unicode")
print(unicode.char(0x00D0))

 

 

Изменено пользователем serafim

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


Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, serafim сказал:

Упс, отладку в эмуляторе OCEmu делал, а там нет связанной карты, да и модем сам на себя работает.

А майн запускал только пару раз, убедится что прога работает.

 

Поправил (убрал коменты)

 

Есть ещё мелкая бага которую не могу победить:

В русской раскладке при удалении последнего символа нажав Backspace появляется лишний кривой символ,

чтоб удалить приходится 2 раза нажимать Backspace, а в английской раскладке такого не происходит.

 

Операясь на эту статью нашол его 9sjwrZf.png 0x00D0

  Показать содержимое


local unicode=require("unicode")
print(unicode.char(0x00D0))

 

 

А если попробовать так?

text_buffer = unicode.sub(text_buffer, 0, unicode.len(text_buffer) - 1)

Код не проверял. Набросал наскоро.

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


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

Работает, а я всё думал как его победить, всёж логично

Появления лишнего символа возможно из за того, что в кодировке utf-8

один русский символ представляется двумя байтами, а не одним байтом как в английской

Спосиб, такой вариант тоже решает проблему

Изменено пользователем serafim

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


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

@serafim чел зарегался, оставил "заказ" и пропал... и больше не появлялся) 

Уже не первый раз такую херабру наблюдаю:)

 

и почта какая-то странная или одноразовая. Спамер судя по всему или твин чей-то.

 

Скрытый текст

46f56db1c2.png

 

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


Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, Alex сказал:

чел зарегался, оставил "заказ" и пропал

Да уж, не ожидал что сделают что ли, хотя для меня тема сделать чат интересная, посути заново изобретаешь велосипед терминал.

Тут куча методик которые раньше я не где не использовал (буфер, unicode.char, sub, event.listen и т.д.)

Пока есть ещё идеи по мелочи, попробую реализовать.

Изменено пользователем serafim

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


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

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

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

Гость
Ответить в тему...

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

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

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

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

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


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