Делается некий проект, состоящий из отдельных приложений и сервисов, связь между которыми организовывается посредством именованных Pipe.
Всё было чудосно, пока не проинсталировал на виртуалку для тесаового прогона. На виртуалке была отключена сетевуха — Pipe пересали работать
Грешил на компонент (проект нарисован на билвере с++6), на виртуалку — написал простенькое приложенице, где Pipe реализованы на API (имя пайпа задавал как "\\\\.\\Pipe\\MyPipe"), тестировал на
реальной и на виртуалке — результат: именованный Pipe не работает на машине с отключённой сетевухой!!! Почему такое может быть? Как только активирую
сетевуху — всё работает. Причём, опытным путём, было определено, что влияет сетевое подключение именно реального канала: на боевом коне имеется с пяток сетевых, оди из которых — ральный выход в сетку, вот только от онного и зависит работа/безделье Pipe.
Прошу помощи !!!
(при отключённой сети выдаёт такие ошибки: если компонент — ошибка доступа, если на API — 1231 "The network location cannot be reached...".
При чём тут сеть к пайпам — )
_S_>Всё было чудосно, пока не проинсталировал на виртуалку для тесаового прогона. На виртуалке была отключена сетевуха — Pipe пересали работать _S_>Грешил на компонент (проект нарисован на билвере с++6), на виртуалку — написал простенькое приложенице, где Pipe реализованы на API (имя пайпа задавал как "\\\\.\\Pipe\\MyPipe"), тестировал на
Код покажите, в винде пайпы юзаются дофига где самой системой.
Имя пайпа задавали как "\\\\.\\Pipe\\MyPipe" в коде или октуда то извне? Ибо двойные слэши — это для С++, ибо искейпинг. А если вы в самом деле \\\\.\\Pipe\\MyPipe передали в CreateFile то система могла както хитро распарсить это дело, к примеру синтепретировав \\. как имя компа (начиная с двух слэшей) и пытаясь достучаться к нему по сети
_S_>При чём тут сеть к пайпам
При том что пайпы и по сети могут работать.
Как много веселых ребят, и все делают велосипед...
When you run an application that uses named pipes as an Interprocess Communication (IPC) mechanism on a Windows NT computer without network support installed, it fails to connect to the named pipe resource either locally or remotely.
For remote named pipe resources, the system must have a physical network card installed. However, for local named pipe resources, you can install the MSLoopback adapter driver for support.
Установка оборудования — Сетевые платы — Адаптер Microsoft замыкания на себя.
После успешной установки адаптера необходимо настроить его конфигурацию. Поскольку адаптер не подключен к физическим устройствам, то в случае выбора в свойствах TCP/IP протокола DHCP фактически используется адрес автосети (169.254.x.x/16).
Скопипастил основное, чтоб далеко не ходить — Odi$$ey
O>Имя пайпа задавали как "\\\\.\\Pipe\\MyPipe" в коде или октуда то извне? Ибо двойные слэши — это для С++, ибо искейпинг. А если вы в самом деле \\\\.\\Pipe\\MyPipe передали в CreateFile то система могла както хитро распарсить это дело, к примеру синтепретировав \\. как имя компа (начиная с двух слэшей) и пытаясь достучаться к нему по сети
Двойные слеши — из-за того, что на Builder всё реализованно, типа экранирование спец-символа.
Здравствуйте, _Shyrik_, Вы писали:
_S_>Здравствуйте, ononim, Вы писали:
_S_>>> hPipe=CreateFile("\\\\127.0.0.1\\Pipe\\MyPipe",GENERIC_READ|GENERIC_WRITE,0,
_S_> это хвосты от тестирования разных вариантов, с \\.\\Pipe \\localhost\\Pipe и \\127.0.0.1\\Pipe (пробовал так как ping 127.0.0.1 без сетевухи проходит)
наступил, не заметил — если поставить "\\.\\" работает !!!
Такое решение тоже пойдет, как и с виртуальной сетевой карточкой LoopBack.
_S_>>>> hPipe=CreateFile("\\\\127.0.0.1\\Pipe\\MyPipe",GENERIC_READ|GENERIC_WRITE,0, _S_>> это хвосты от тестирования разных вариантов, с \\.\\Pipe \\localhost\\Pipe и \\127.0.0.1\\Pipe (пробовал так как ping 127.0.0.1 без сетевухи проходит) _S_> наступил, не заметил — если поставить "\\.\\" работает !!!
То есть все хорошо и изначальная проблема отменяется?
Как много веселых ребят, и все делают велосипед...
Здравствуйте, Jolly Roger, Вы писали:
JR>Попробуйте на "свежей" виртуалке, до установки Loopback драйвера.
Поставил чистую WinXP SP3, без апдейтов.
Результат тестирования:
1. Без LoopBack драйвера: пайпы работают только при условии, что и сервер и клиент создаються с именами "\\.\Pipe\SomePipeName",
в остальных случаях ошибки.
2. С установленным LoopBack драйвером: без перезагрузки работает только то, что указано в пункте 1. После перезагрузки — работет пункт 1 плюс:
если сервер создаётся как "\\localhost\Pipe\SomePipeName" — ошибка 52, "\\127.0.01\Pipe\SomePipeName" — ошибка 123 (оно, в принципе, было ожидаемо, так как нельзя создать сервер на удалённой машине).
Если сервер создаётся как "\\.\Pipe\SomePipeName" то клиент работает при таких
параметрах: "\\127.0.0.1\Pipe\SomePipeName" и "\\.\Pipe\SomePipeName". Если попытаться "\\localhost\Pipe\SomePipeName" — ошибка 52.
JR>Установка оборудования — Сетевые платы — Адаптер Microsoft замыкания на себя.
JR>После успешной установки адаптера необходимо настроить его конфигурацию. Поскольку адаптер не подключен к физическим устройствам, то в случае выбора в свойствах TCP/IP протокола DHCP фактически используется адрес автосети (169.254.x.x/16).
А есть то же самое только для микрофона?
Тоесть что нужно:
1. Запускаю аудио плеер и включаю проигрование аудио
2. Запускаю Рекордер и включаю запись
В результате аудио поток с проигрователя буде записан в рекордере.
Здравствуйте, Bear Hunter, Вы писали:
BH>А есть то же самое только для микрофона?
Соединить вход и выход верёвкой?
Можно, вероятно, создать соответствующий граф фильтров, в DirectX SDK даже входит утилита graphedt.exe для визуального построения таких графов. Лучше здесь спросите, я в этом не специалист, очень мягко говоря
"Нормальные герои всегда идут в обход!"
Re[3]: Pipe and LAN
От:
Аноним
Дата:
11.12.10 13:35
Оценка:
Здравствуйте, Jolly Roger, Вы писали:
JR>Соединить вход и выход верёвкой?
Неа не выйдет
Очень часто приходится работать удаленно с серверами, которые стоят на других этажах..
JR>Можно, вероятно, создать соответствующий граф фильтров, в DirectX SDK даже входит утилита graphedt.exe для визуального построения таких графов. Лучше здесь спросите, я в этом не специалист, очень мягко говоря