Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146

Состояние канала

07.05.2010, 20:39. Показов 1506. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пипл! Поздскажите, пожалуйста, как со стороны сервера канала Pipe узнать, подключен ли к его каналу кто нибудь или нет???

Пробовал:
C++
1
2
wchar_t *w=new wchar_t[10];
GetNamedPipeHandleState(hPipe1,NULL,NULL,NULL,NULL,w,NULL);
чтобы получить имя подключенного пользователя... но возвращает пустую строку и когда есть подключение и когда нет...

Добавлено через 10 минут
С функцией разобрался... Надо было указать размер буфера:
C++
1
2
char *w=new char[64];
GetNamedPipeHandleStateA(hPipe1,NULL,NULL,NULL,NULL,w,64);
Но как выяснилось функция делает не до конца то что нужно... Она записывает имя клиентского процесса, но не очищает, если клиент отсоединился, и всвязи с этим совершенно бесполезна для этой задачи...

Подскажите, пожалуйста, как со стороны сервера канала Pipe узнать, подключен ли к его каналу кто нибудь или нет???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2010, 20:39
Ответы с готовыми решениями:

Деление Wav-файла на два канала
Реализовать функцию разделяющую входной wav файл на каналы (на два выходных файла) с возможностью уменьшения амплитуд любого из каналов. ...

При приеме данных через NamedPipe возникает ошибка "Неправильное состояние канала"
Пишу серверное приложение, общение с которым будет происходить по NamedPipe. После TransactNamedPipe при попытке приема данных от...

Дан номер телевизионного канала (от 1 до 5).Вывести на экран наиболее популярные программы заданного канала
Дан номер телевизионного канала (от 1 до 5).Вывести на экран наиболее популярные программы заданного канала.

3
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
09.05.2010, 20:32  [ТС]
Нашел такую функцию GetNamedPipeClientProcessId.
Вызываю по инструкции:

C++
1
2
3
4
5
6
7
8
9
bool w;
PULONG q;
hPipe1 = CreateNamedPipe(
"\\\\.\\pipe\\tvp_prc_pipe1",
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
1024, 1024, 1024, NULL);
w=GetNamedPipeClientProcessId(hPipe1,q);
Насколько я понял мсдн в q должен был записать id процесса клиента, но там <undefined value> и в w записывается false. Проверил GetLastError, ошибка №122, это
ERROR_INSUFFICIENT_BUFFER
The data area passed to a system call is too small.

Непонимаю размер какого буфера слишком мал?.. Люди подскажите, плз!!!
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
09.05.2010, 21:58
Цитата Сообщение от SphiNkSs Посмотреть сообщение
Насколько я понял мсдн в q должен был записать id процесса клиента, но там <undefined value> и в w записывается false. Проверил GetLastError, ошибка №122, это
ERROR_INSUFFICIENT_BUFFER
The data area passed to a system call is too small.
Непонимаю размер какого буфера слишком мал?.. Люди подскажите, плз!!!

ты вообще, понял, что такое PULONG ?
это Pointer on Unsigned LONG.
удивительно, что тебя система вообще не выкинула в BSOD за обращение по указателю хрен_знает_куда.

сделай q типа ULONG и возьми в функции адрес этой переменной: &q - все заработает.
1
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
10.05.2010, 07:10  [ТС]
млин... все гениальное просто)...спасибо)... я даже не задумался что такое pulong... думал какой то специфический ulong)... все работает, но... цель не достигнута... после отключения клиентского процесса в q остается старая запись об id процесса и определить подключен кто или нет невозможно... ищем дальше...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.05.2010, 07:10
Помогаю со студенческими работами здесь

Можно ли при гибернации сохранить состояние нескольких приложений, но при этом не сохранять состояние системы?
можно сохранить состояние нескольких приложений, но при этом не сохранять состояние системы? убил логон при помощи logon workshop`a, а на...

Скорость канала
Добрый день Господа. Не знал в какую ветку поместить данную тему, поэтому она здесь. У меня скорость интернет канала 5мб с...

объедение 2 канала в 1
Есть такая проблема. Мой провайдер поставляет интернет, 28 мб максимум. Мне нужно хотя бы 50 мб. Если мне провести в квартиру 2 кабеля по...

2 Интернет канала
Доброго времени суток! Возникла следующая проблема: Есть 2 Интернет-канала: более быстрый A и более медленный B. Есть сервер, к которому...

Обрыв канала
Здравствуйте! Опять столкнулся с очередной проблемой, которую не могу решить. Дело в том, что при написании программы я использовал...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru