2 / 2 / 0
Регистрация: 05.10.2010
Сообщений: 37
|
|
1 | |
Анонимные каналы. Петля?01.12.2011, 16:17. Показов 6388. Ответов 9
Метки нет (Все метки)
Привет всем.
Есть задание: при помощи анонимных каналов наладить передачу данных между двумя процессами по схеме 1->2, 2->1. Есть у кого-нибудь идеи или подобные примерчики? Просто я не могу уложить в голову, как это сделать, ведь используется стандартный ввод-вывод. Получается петля без точки ввода же. Разъясните.
0
|
01.12.2011, 16:17 | |
Ответы с готовыми решениями:
9
Анонимные именованные каналы Анонимные каналы "Системное программирование в Windows" (А. Побегайло) Анонимные каналы - сервер и клиент Передача массива через анонимные каналы |
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
|||||||||||
01.12.2011, 20:52 | 2 | ||||||||||
При использовании анонимного канала выполняется ряд действий
1)Сервер создает анонимный канал. 2)Сервер создает дочерний процесс и передает ему дескриптор канала 3)По каналу производится синхронная передача данных 4)Для обмена данными используются функции работы с файлом В кратце код сервера
0
|
2 / 2 / 0
Регистрация: 05.10.2010
Сообщений: 37
|
|
01.12.2011, 22:03 [ТС] | 3 |
Спасибо, что отозвались. Возникло несколько вопросов. Вполне вероятно, глупых.
1. Но ведь все равно нужно два канала, так? Анонимные же вроде поддерживают передачу только в один конец. 2. Не очень знаком с параметрами argc, argv. Можно чуточку подробнее? 3. Каким образом передать клиенту два дескриптора, ведь, насколько я понимаю, atoi переводит строку в символ до тех пор, пока не встретит символ, отличный от цифры.
0
|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
||||||
01.12.2011, 22:34 | 4 | |||||
Канал 1 а используется 2 дескриптора один для чтения другой для записи.один дескриптор только для чтения второй только для записи это и есть в одном направлении
argv -это массив символов
0
|
2 / 2 / 0
Регистрация: 05.10.2010
Сообщений: 37
|
|
02.12.2011, 00:11 [ТС] | 5 |
При попытке такого определения студия говорит, что нельзя присвоить значение типа int сущности HANDLE.
0
|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
||||||
02.12.2011, 09:39 | 6 | |||||
Все правильно говорит,вы же сохраняете int а присваиваете HANDLE-у.Надо делать приведение типов
0
|
2 / 2 / 0
Регистрация: 05.10.2010
Сообщений: 37
|
|
02.12.2011, 14:45 [ТС] | 7 |
Я и думал так сделать, но разве есть приведение int -> HANDLE?
Сейчас попробую.
0
|
2 / 2 / 0
Регистрация: 05.10.2010
Сообщений: 37
|
|||||||||||
03.12.2011, 16:36 [ТС] | 8 | ||||||||||
Вроде, сделал все, как вы говорили, но процесс-потомок не хочет читать строку. Сервер должен принимать строку от пользователя и передавать ее клиенту, а клиент должен ее же просто возвращать.
Сервер:
Кстати, не помню. Кажется, где-то читал, что хэндлы канала для каждого процесса уникальны и нужно использовать DuplicateHandle.
0
|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
||||||
03.12.2011, 17:34 | 9 | |||||
зря вы не хотите скачать книгу которую я вам посоветовал! С хенделами все в порядке,а с инициализацией переменных нет
1
|
2 / 2 / 0
Регистрация: 05.10.2010
Сообщений: 37
|
|
03.12.2011, 17:44 [ТС] | 10 |
Уже скачал, только, пардон, забыл про нее
Спасибо, все заработало.
0
|
03.12.2011, 17:44 | |
03.12.2011, 17:44 | |
Помогаю со студенческими работами здесь
10
Общение между процессами через анонимные каналы Петля ? петля в сети 20 mA токовая петля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |