![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: 1 Всего: 2 |
пробовал клиент-сервер на сокетах - там вроде все болие менее понятно.
Пакет с запросом- пакет с ответом. С пайпами же можно работать как с объектом ввода-вывода ОС. На сколько я понимаю определенного интерфейса не существет. 1. Если сервер постоянно пишет в пайп. Сколько он может записать ?(ограничения размером памяти, размером жесткого диска, или еще чем) 2.Все операции с пайпом схожи с файлами - можно ли синхронизировать чтение - запись? 3.Можно ли ограничить подключения к пайпу ? (или это можно сделать солько со стороны клиента при открытии файла с определенными правами) 4. Где можно подробно почитать об этом (желательно не только о пайпах, но и обо всех возможных средствах межпроцессорного взаимодействия). Особенно об ассинхронных операциях P.S. Особенно меня очень интерисует поддерживает ли пайп транзакцию. Тоесть если в момент записи 100 байт я начинаю читать - гарантируется ли чтение 100 байт или я могу прочитать меньше ? Это сообщение отредактировал(а) zss - 8.3.2006, 00:30 |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
ответы на все ( ну или почти все ) вопросы -- в MSDN...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Janus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 26.9.2005 Репутация: нет Всего: 1 |
А возможны ли пайпы средствами самого C++, без API.
--------------------
Проект "Репликатор" |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Имхо нет
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| NiJazz |
|
||||||||||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
Скорее памяти. Информацию лучше отправлять порциями и сбрасывать буфер (FlushFileBuffers).
Да. Смотри параметр overlapped. В функциях ReadFile и WriteFIle.
Да. Смотри параметр SECURITY_ATTRIBUTES в CreateNamedPipe.
MSDN. Добавлено @ 18:53
Смотри TransactNamedPipe |
||||||||||
|
|||||||||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: 1 Всего: 2 |
тоесть выше выделенного буфера при создании пайпа не прыгнеш ? ну это скорее для ассинхронных операций этим можно задать права доступа. А количество соединений также можно задать при создании пайпа. я не совсем это имел ввиду. Путь сервер пишет в пайп большой кусок ну например размером 10 мб. В этот момент подключается клиент и начинает читать. Он прочитает только то что было саписано на данный момент (например 3 мб) или чтение не произойдет, пока сервер не запишет все 10 и значит клиент считает именно все 10 мб
вот тут короче я не знаю что делать. У меня односторонняя труба. В нее пишет только сервер. Причем пишет всегда. 1. Как отслеживать заполнение трубы ? или после каждой записи сбрасывать буфер. Но тогда если клиент не прочитал - потеря данных 2. Клиент знает только размер выделенной под трубу памяти. Он не знает сколько там лежит реально данных. Получается, что клиенту нужно читать весь буфер целиком, и только тогда он узнает сколько там было ? З.Ы, только что провел эксперимент. Создал пайп размером 100 байт и попытался в цикле записывать кусками по 90 байт. Так вот первый раз он записал 90 байт, а второй 10 байт и встал в ожидание, пока пользователь не прочтет трубу. А мне бы хотелось, если целиком кусок в 90 байт не всезает, то не писать 10 байт, а ждать когда освободится место под все 90 байт Это сообщение отредактировал(а) zss - 10.3.2006, 10:30 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |