Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
1

Вопрос по named pipe

12.08.2011, 11:35. Показов 1151. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
bidirectional, asynchron, message.

со стороны клиента в трейде 0 открываем pipe, и создаем трейд 1, где начинаем читать.
трейд 1 переходит в ожидание.
затем в трейде 0 пишем.
в этот момент трэйд 1 оживает, операция чтения, которая ждала, завершается с FALSE, код ошибки 317 (The system cannon find message text for message number 0x%1 in the message file for %2).

я вообще думал, что читающий трэйд будет висеть, пока сервер ему что-нибудь не напишет. как этого добиться? можно, конечно, зациклить чтение, если код ошибки 317, будет работать. но тогда я сэкономлю себе понимание того, как это функционирует, и как сделать правильно.

Добавлено через 1 час 15 минут
сделал, как думал, и установил, что это - не выход. это не просто возврат FALSE, а данных в там уже нет. они последующими успешными операциями чтения не читаются.
например, если я буду пытаться читать по одному байту, и последовательность операций будет такая (в скобках - номер трэйда):

(0) открыли. создали трэйд 1
(1) читаем 1 байт. переходим в ожидание, пока сервер напишет
(0) пишем Н байт
(сервер) читает Н байт
(1) операция считывания завершилась с ошибкой, пытаемся ее повторить. ждем дальше.
(0) пишем М байт
(сервер) читает М байт
(1) операция чтения с ошибкой, повторяем. ждем
(сервер) пишет один три байта: "абс"
(1) операция чтения успешно завершилась, в буфере - считанный байт. и это не "а", а "с".

как выход вижу или помощь клуба, или строить двe pipes, по одной в каждую сторону.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2011, 11:35
Ответы с готовыми решениями:

Чтение из Named Pipe C++
Добрый день. Есть Named pipe сервер, написанный на delphi. Возникла необходимость написать клиент...

Конец сообщения в named pipe?
Q! Просто про пайпы - читаю, но где метка конца сообщения? Пример (чтение): ... r =...

Запись в канал (Named Pipe)
Здравствуйте. Благодарю за внимание :) Мне нужно послать сообщение с одного процесса (клиента) на...

Отправка сообщения в Named Pipe получателю на C++
Приветствую! Есть приложение, которое поддерживает именованные каналы, нужна помощь в реализации...

0
12.08.2011, 11:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2011, 11:35
Помогаю со студенческими работами здесь

Выбор между TCP Socket и Named Pipe
Какой из классов выбрать для связи клиентского приложения и сервера, которые подключены только...

Named Pipe клиент не подключается второй раз
Нужно сделать клиент-сервер процессы, клиент запускается, шлет на сервер привет мир и падает себе....

Небольшое консольное клиент-серверное приложение по Named Pipe
Нужно пообщаться между клиентом и сервером через именованные каналы, но у меня кое что не...

Последствия не указания файла описания ДНС серверов named.ca в named.conf для Bind
Добрый день ! Уважаемы коллеги, есть вопрос по ДНС серверу Bind. Обязательно ли прописывать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru