Вообще?Я не вижу, как это связано с C #, но архитектура клиент-сервер выглядит следующим образом:
Client <-----> Server
Для чего-то вроде того, что вы описываете, где два или более клиентов общаются друг с другом, выпросто говорим о добавлении нескольких клиентов:
Client A <----
|
----> Server
|
Client B <----
Если клиент A хочет отправить сообщение клиенту B, то клиент A отправляет сообщение на сервер с некоторой информацией, указывающей, что оно предназначено для клиента B.Затем сервер проверяет сообщение, определяет, что оно предназначено для Клиента B, а затем передает это сообщение через соединение с Клиентом B.
Это фундаментальное определение архитектуры клиент-сервер.Существуют более продвинутые архитектуры, которые смешивают клиент-сервер с одноранговой связью, например Skype.В гибридной системе соединение от клиента к серверу обычно несет только управляющие сообщения (аутентификация и т. Д.) И запрашивает информацию о том, как связаться с другим клиентом напрямую.Преимущество такого подхода в том, что он не требует всех связи между A и B для прохождения через сервер;A и B оба подключаются к серверу, но затем они спрашивают сервер, как подключиться друг к другу напрямую, а затем используют это прямое подключение для связи с интенсивным использованием полосы пропускания.
Хотя на самом деле это все в стороне.Прежде чем приступить к разработке приложения, вам следует ознакомиться с архитектурой клиент-сервер независимо от языка или среды .