powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обмен сообщениями в локальной сети на основе mailslot (исходники, описание и пример)
2 сообщений из 2, страница 1 из 1
Обмен сообщениями в локальной сети на основе mailslot (исходники, описание и пример)
    #38794558
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю многие делали или хотели сделать механизм обмена сообщениями между пользователями своей сетевой проги. Например иметь возможность написать всем "Требуется закрыть прогу для индексирования".
Предлагаю свою реализацию.

Узнал случайно про механизм виндовса для обмена сообщениями между процессами mailslot
Принцип вкратце такой: каждое приложение слушает слот с определенным именем и получает все что на него приходит. Отправка возможна в пределах своего компа, на конкретный комп сети и всем сразу. Вот последний вариант меня и заинтересовал.

Тем кто захочет потестить в архиве пример простенького чата:
Откомпилировать в VFP9 и запускать EXE или запустить форму frmChat
Задать имя канала и свои имя (от которого пойдут сообщения)
Нажать кнопку "Начать прослушивание"
Писать снизу сообщения и давить "Отправить"

Доходит мгновенно, без задержек.

Основных файла два:
mailslotvfp.dll - там вся работа со слотами, написал на С т.к. нужны были потоки. Исходники тоже приложил если кто подопиливать захочет. В принципе можно только на фоксе все сделать, но проверять входящие придется по таймеру, будут задержки. Тут вместо таймера я сделал отправку оконного сообщения окну фокса, для оповещения о приходе сообщения в слот.
mailslotvfp.prg - класс-обертка над функциями mailslotvfp.dll, описаловка внутри. По сути это заготовка, дальше можно допиливать кому как фантазия позволит, например сделать формат сообщения "от кого;кому;текст" и игнорировать чужие сообщения - получится аська. Сначала хотел так сделать, но отказался - лишний код только запутает понимание работы транспорта.

В сети это работает по протоколу UDP, в связи с этим есть ограничения
1. Максимальный размер сообщения 424 байта
2. Доставка сообщений не гарантируется и отправителем не контролируется. Я потерь не замечал, но если нужны гарантии доставки: отправлять получателем подтверждение приема, а отправителем повторять отправку если не было подтверждения в течении заданного таймаута.

Кому интересно - качайте, запускайте, пользуйтесь. Будут вопросы - пишите сюда. Найдете косяки - пишите, поправлю.
...
Рейтинг: 0 / 0
Обмен сообщениями в локальной сети на основе mailslot (исходники, описание и пример)
    #38797354
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Да, интересно. А обработку почты не делал такую - будет фуррор.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обмен сообщениями в локальной сети на основе mailslot (исходники, описание и пример)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]