Только один клиент может соединиться с именованным каналом

CodeIDE является хорошо одним: http://www.codeide.com/

7
задан Shackles 12 October 2009 в 18:39
поделиться

3 ответа

Спасибо за быстрый help.

Я уже выполнял реальную обработку в отдельных потоках, но забыл упомянуть об этом. Однако сотрудник обнаружил проблему:

У меня был StreamReader, заключенный в другой блок using в опубликованном блоке NamedPipeServerStream-using на стороне сервера.

Когда этот блок завершил закрытие StreamReader, он также по какой-то причине отключил NamedPipeServerStream. Также я не заключал pipeStream.WaitForConnection () в цикл.

1
ответ дан 7 December 2019 в 12:22
поделиться

A real pipe (that one from the hardwre store) has two endings. So I'd expect that the named pipe also has exactly two endpoints, one for the server process and one for the client process.

However, no matter what's the final answer, I'd suggest to have a look at WCF - it supports net pipe binding (and lots of others like binary TCP, SOAP with or without WS-* specs just by changing the config) and handles the server activation and multi threading for you. .net 3.5 is available, so I'd definitely opt for it.

0
ответ дан 7 December 2019 в 12:22
поделиться

вы можете найти некоторую информацию здесь: Количество клиентов, которые могут подключиться к именованному каналу

и здесь, в MSDN: http://msdn.microsoft.com/en-us/library/aa365594%28VS.85%29.aspx

, насколько я понимаю, вам следует создать многопоточное приложение. основной поток должен отвечать за будущие соединения, и каждое новое соединение должно запускаться в новом потоке.

4
ответ дан 7 December 2019 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: