Форум программистов, компьютерный форум CyberForum.ru

Принудительный разрыв именованного канала - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Рекурсия http://www.cyberforum.ru/cpp-beginners/thread1081942.html
Есть задача, написал решение но ответ неправильный. Задача: Решение: #include <iostream> using namespace std; int a, n, m, t, k, x, y, i, j; void p(int i, int j) { if(i < 0 || j < 0 || i == n || j == m) return;
C++ Возможно ли у семейства фунций exec получить возвращаемое значение? Возможно ли у семейства фунций exec получить возвращаемое значение? прототип позволяет: int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg , ..., char * const envp); int execv(const char *path, char *const argv); int execvp(const char *file, char *const argv); Однако, рядом указано, что... http://www.cyberforum.ru/cpp-beginners/thread1081907.html
Сформировать новый массив C++
Дан массив a1, ... , a20. Сформировать новый массив b1, ... , b20 , у которого вначале следуют все положительные элементы массива А, затем все отрицательные.
C++ Даны одномерные массивы А и В, длины m и n соответственно
Даны одномерные массивы А и В, длины m и n соответственно. Рассортировать их в порядке возрастания и слить их в один массив длиной m+n.
C++ Дано предложение, слова в котором разделены произвольным числом пробелов http://www.cyberforum.ru/cpp-beginners/thread1081897.html
Дано предложение, слова в котором разделены произвольным числом пробелов. Найти количество слов в предложении, самое длинное и самое короткое слово.
C++ Даны две последовательности: x[1] . x[n] и y[1] . y[k] Даны две последовательности: x ... x и y ... y. Найти максимальную длину последовательности, являющейся последовательностью обеих последовательностей. Количество операций порядка n * k. подробнее

Показать сообщение отдельно
Russian_Dragon
 Аватар для Russian_Dragon
10 / 11 / 0
Регистрация: 18.02.2012
Сообщений: 140
26.01.2014, 16:50  [ТС]     Принудительный разрыв именованного канала
Цитата Сообщение от Убежденный Посмотреть сообщение
Можете привести минимальный пример, воспроизводящий проблему ?
Просто в работе с каналами масса нюансов: как оба потока открывают
канал - через CreateNamedPipe/CreateFile или через передачу хэндлов,
или через DuplicateHandle(Ex), какие флаги при создании указываются,
особенности синхронного/асинхронного I/O и т.д.
Попробуем.
На сервере (C++)
C++
1
2
this->pipeServer = CreateNamedPipe(GlobalConst::GetNamePiperEncephalomanager().c_str(), PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, 1, 0, 0, NMPWAIT_WAIT_FOREVER, NULL);
BOOL isConnected = ConnectNamedPipe(this->pipeServer, NULL);
Из того же потока (собственно тут и зависаем):
C++
1
ReadFile(this->PipeServer(), binaryData, sizeData, &cbRead, NULL)

На клиенте (С#)
C#
1
2
3
PipeClient = new NamedPipeClientStream(".", "BridgeDataCenter", PipeDirection.InOut);
PipeClient.Connect();
PipeClient.ReadMode = PipeTransmissionMode.Message;
Разорвать соединение пытаемся на сервере.

Добавлено через 2 минуты
Цитата Сообщение от Убежденный Посмотреть сообщение
Что значит "не выходит" ?
Мы всё равно висим на функции чтения данных их канала.
 
Текущее время: 01:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru