Соединения Windows Named Pipes - PullRequest
       30

Соединения Windows Named Pipes

0 голосов
/ 31 декабря 2018

У меня есть поиск высоко и низко для этого ответа.Можно ли создать код сервера именованных каналов, где постоянное соединение с клиентом сохраняется до тех пор, пока вы не закроете приложения?Это было бы в C / C ++.Не просить никого на самом деле сделать это, так как я способен.Чтобы немного подробнее объяснить, если мой вопрос неясен, я хочу, чтобы клиент мог подключаться к серверу, а затем передавать данные туда и обратно, не прерывая соединение в конце каждой транзакции данных.а затем начать новый снова для следующего.Похоже, что в каждом примере, который я видел или читал, транзакция длилась только для этого одного обмена данными.Это кажется расточительным и чрезвычайно трудоемким.Затем я хочу создать поток, чтобы у меня было до 8 клиентов с одним и тем же именованным каналом.Если вы знаете пример кода, который это делает, это было бы также здорово.Уже прочитал примеры Microsoft, и они кажутся единым обменом данными с новыми подключениями каждый раз.

Моя путаница связана с функциями readfile () и writefile ().Им нужны дескриптор канала и указатели на структуры данных, такие как файл R / W на жестком диске.Эти файлы могут быть открыты при запуске программы, использованы, а затем, наконец, закрыты непосредственно перед выходом из приложения.Есть риски для этого, но иногда это необходимо.Поэтому я хочу, чтобы мое серверное приложение контролировалось, а не клиенты.

Заранее спасибо.Я отвечу на любые вопросы, если вам это не понятно.

1 Ответ

0 голосов
/ 01 января 2019

Я не удивлен твоими ответами.Я действительно хотел, чтобы соединение оставалось открытым для каждого экземпляра, но так как каналы работают не так, я понял.Я разработал лучший способ заставить мои приложения общаться друг с другом.Изначально у меня был один сервер и много клиентов, поэтому я перевернул его, и теперь у меня есть один клиент и несколько серверов, каждый из которых имеет свое имя канала.Поскольку мой клиент, который был сервером, выполнял большую часть инициализации сообщений, теперь я могу лучше управлять тем, как я отправляю и запрашиваю данные через сообщения / каналы.Единственным недостатком является не предоставление данных всем им одновременно, а то, что количество друзей составляет несколько микросекунд.Пожалуйста, дайте мне знать, если это не сработает, как я ожидаю, прежде чем я потрачу много времени на код.Благодарю.Любые предложения приветствуются.

...