powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что выбрать для обмена данными между приложениями на одном виндовом хосте?
25 сообщений из 26, страница 1 из 2
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939012
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервером будет виндовый сервис. Клиентами будут диэлэли (внешние компоненты к имеющимся приложениям)

TCP-IP?

Named pipes?
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939017
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939036
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Нужны синхронизация и события. Придется семафорить.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939049
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Сервером будет виндовый сервис. Клиентами будут диэлэли (внешние компоненты к имеющимся приложениям)

TCP-IP?

Named pipes?
У TCP есть два преимущества
а) можно переключать учетки
б) сервер легко перенесется на другой комп.

Если это не важно и не будет важно - пайпы удобнее/быстрее/надежнее.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939067
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
а) можно переключать учетки

В смысле?
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939068
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если клиенты будут в DLL, проблем с пайпами не будет?
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939071
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home,
В смысле что имена пайпов уникальны в рамках пользовательской сессии.
Т.е. клиент не "увидит" пайп, созданный приложением под другой учеткой.
Номер порта в TCP от учетки не зависит.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939074
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Сервером будет виндовый сервис. Клиентами будут диэлэли (внешние компоненты к имеющимся приложениям)

TCP-IP?

Named pipes?

Можно брать TCP-IP. На loopback он достаточно быстро работает. Особено если это
просто сигнальный протокол где приложения уведомляют о событиях.
И если в топике звучит слово компонента - то мне сразу вспоминаются COM+/DCOM
где были целые архитектуры построены и стандартизированы. Слегка архаично
но это работает. И может автору даже сойдет.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939082
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home,
В смысле что имена пайпов уникальны в рамках пользовательской сессии.
Т.е. клиент не "увидит" пайп, созданный приложением под другой учеткой.
Номер порта в TCP от учетки не зависит.

Хм. Хорошо, что переспросил. Речь идет о терминальном сервере, куча клиентов, каждый под своей учеткой и сервис под своей. Что, пайпы не пойдут?
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939100
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home, нет, и MMF тоже.
Тут только TCP.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939103
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок. Спасибо.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939132
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
На loopback он достаточно быстро работает.

Причём скорость его работы упирается в код приложения, а не системы. На своём ноуте я получал разброс скорости от 10 до 40 мегабайт в секунду просто сменив способ выделения буфера и обработки принятых данных.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939135
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пытаюсь представить себе такую постановку задачи при которой один процесс пересылает другому
терабайты инфы и не могу. Кроме мессенжиговых систем и ETL нет ничего похожего. Да и ETL
можно переписать "на файлах".

Автор что-то велосипедит нехорошее. Особенно когда сразу отброшены протоколы http/mq
и взят курс на сырой сокет.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939156
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home, нет, и MMF тоже.
Тут только TCP.

Если строго, то для MMF надо ставить SECURITY_ATTRIBUTES и глобальный префикс имен. А вообще - смотря что понимать под обменом. Если надо прочитать-записать всего 10 байт содержательных и для них перегонять мегабайты чтобы их найти - то может и стоит заморочиться с MMF. А может стоит и целый шареный кеш LRU делать. Но если у топикстартера обмен с уже имеющимся приложением - то конечно практичнее TCP.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939172
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
Если строго, то для MMF надо ставить SECURITY_ATTRIBUTES и глобальный префикс имен.
Это где описано? ЕМНИП, лет 10 назад не было.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939202
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
широко известно в узких кругах ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
# Local Connection Settings
#
# The name of the shared memory area used as a transport channel in local protocol.
# Note that the local protocol in v2.0 is not compatible with any previous version
# if Firebird or InterBase.
#
# IMPORTANT! If your host OS is Vista or you are running Windows 2003 or
# Windows XP with terminal services enabled, and you need the local connection
# to work, you should prefix the below value with "Global\", i.e. it should
# be "Global\FIREBIRD". Please note that the prefix is case-sensitive.
Я не помню, когда вышел Firebird 2.0, но комментарий, отсылающий к документации, датирован февралём 2007-го ( CORE-1133 ).
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939274
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
ну я
Если строго, то для MMF надо ставить SECURITY_ATTRIBUTES и глобальный префикс имен.
Это где описано? ЕМНИП, лет 10 назад не было.

Я в гугле искал. Лет 8 назад. Когда перешли с Win2000 на Win7, понадобилось строже прописывать эти секурити.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939293
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
Я в гугле искал. Лет 8 назад. Когда перешли с Win2000 на Win7, понадобилось строже прописывать эти секурити.
У меня не находится. Можете пример выложить?
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939317
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939325
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
ну я
Я в гугле искал. Лет 8 назад. Когда перешли с Win2000 на Win7, понадобилось строже прописывать эти секурити.
У меня не находится. Можете пример выложить?

Да, после Win2000 все усложнилось.

Есть код проверки повторного запуска проги на C#, найден на в инете, работает, может поможет
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
           var m_sec = new MutexSecurity();
            m_sec.AddAccessRule(new MutexAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), MutexRights.FullControl, AccessControlType.Allow));
            Boolean is_new = false;
            using (var mut = new Mutex(false, "Global\\MyMutex", out is_new, m_sec)) {
                if(!is_new) {
                    // Программа уже запущена
                    return;
                }
... 


На WinAPI вроде тоже видел, но сходу не находится
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939327
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, кстати как твой транспортный UDP протокол поживает?
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939397
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home,
В смысле что имена пайпов уникальны в рамках пользовательской сессии.
Т.е. клиент не "увидит" пайп, созданный приложением под другой учеткой.
Номер порта в TCP от учетки не зависит.
Вот неправда. Пайпы можно даже между разными компьютерами использовать.
Уникальны для пользовательской сессии имена мьютексов/эвентов
https://docs.microsoft.com/ru-ru/windows/win32/termserv/kernel-object-namespaces?redirectedfrom=MSDN
A Remote Desktop Services server has multiple namespaces for the following named kernel objects: events, semaphores, mutexes, waitable timers, file-mapping objects, and job objects. пайпов в списке нет
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939520
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я пытаюсь представить себе такую постановку задачи при которой один процесс пересылает другому
терабайты инфы и не могу. Кроме мессенжиговых систем и ETL нет ничего похожего. Да и ETL
можно переписать "на файлах".

Автор что-то велосипедит нехорошее. Особенно когда сразу отброшены протоколы http/mq
и взят курс на сырой сокет.

пару байт.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939533
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот и пересылай через сокеты. Тогда твое приложение будет и масштабироваться.
...
Рейтинг: 0 / 0
Что выбрать для обмена данными между приложениями на одном виндовом хосте?
    #39939593
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone
Соколинский Борис
Flying-home,
В смысле что имена пайпов уникальны в рамках пользовательской сессии.
Т.е. клиент не "увидит" пайп, созданный приложением под другой учеткой.
Номер порта в TCP от учетки не зависит.
Вот неправда. Пайпы можно даже между разными компьютерами использовать.
Уникальны для пользовательской сессии имена мьютексов/эвентов
https://docs.microsoft.com/ru-ru/windows/win32/termserv/kernel-object-namespaces?redirectedfrom=MSDN
A Remote Desktop Services server has multiple namespaces for the following named kernel objects: events, semaphores, mutexes, waitable timers, file-mapping objects, and job objects.
пайпов в списке нетЭто элементарно проверяется. Предлагаете не верить своим глазам?
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что выбрать для обмена данными между приложениями на одном виндовом хосте?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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