Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Реализация обмена между программами инофрмацией |
Автор: drayvhard 5.11.2013, 21:38 |
Здравствуйте, ребята! Вот у меня возникла проблема реализации обмена данных между программами (серверами и клиентами) Пусть у сервера есть std::vector<double> и он постоянно обновляется, независимо от клиентов, то есть наполняется... В определённый момент (я думаю, что в данном контексте лучше всего использовать сокеты, хоть и сервер и клиен работает на одном компе, но сокеты ближе, чем named pipes... нужна возможность работы и по сети... хотя кажется pipes могут работать и через сеть... но не в этом дело), клиент подключается к серверу и говорит: "мне нужен контент твоего супер вектора", после этого нужно отослать весть контент этому клиенту... Скажите пожалуйста, как такое реализовать? Хотя бы идею... Пусть к этому серваку может быть подключено энное количесво клиентов... и всех нужно обработать... Далее, больше... пусть сервак всё отослал клиентам и ждёт с "моря погоды", и тут в него поступают новые данные... Сервер должен как-то всех клиентом оповестить и отослать эти данные... Как тут поступить? Постоянно держать сокет открытым на R/W между клиентами и сервером? Это типа пуш такой будет? Ну и третье: пусть на одном компе есть туча клиентов, которые подключаються к СерверАМ. То-есть мы имеем на одном компе 2 серверных приложения... как к ним обращаться по отдельности? Ведь хост тотже будет? Дифференцировать их по номеру порта? или каким то другим образом? Буду рад идеям и помощи...Спасибо! |
Автор: drayvhard 5.11.2013, 22:06 | ||||
А в нашем случае, что будет надёжнее и быстрее из методов IPC: сокеты, shared memmory или named pipes? |