Вы захотите, чтобы сервер мог обрабатывать одновременные клиентские соединения, а каждый клиент - подключаться к серверу в другом экземпляре канала, а не пытаться делать все в одном экземпляре канала, как это делает ваш код в настоящее время. Когда клиент закончил, вы хотите освободить экземпляр канала, который использовался при разговоре с этим клиентом, а не использовать его повторно.
Этот ответ дает набросок псевдокода одного из способов сделать это.
Также обратите внимание, что в режиме сообщений вам нужно читать из канала в цикле, пока свойство IsMessageComplete
не станет true
. Это единственный способ гарантировать, что вы получите каждое полное сообщение. Также имейте в виду, что «сообщение» в режиме сообщений означает поток байтов, записанных отправителем за один Write
вызов канала.
Клиентские потоки не могут смешиваться друг с другом: экземпляр канала имеет только два конца, THE клиент и THE сервер.