Нужна концепция относительно оконного приложения чата - PullRequest
1 голос
/ 17 января 2011

предположим, что если я хочу разработать приложение для чата Windows, тогда необходимо разработать сервер чата и клиент. после разработки приложений сервера чата мы можем запустить эти приложения на компьютере, а клиент чата будет работать на другом компьютере. если эти компьютеры не находятся в одной сети, предположим, что сервер чата работает на машине в США, а один клиент чата работает на машине в Германии, а другой - на машине в Великобритании. в этой ситуации, как общение будет происходить с использованием Интернета. у всех nachine есть доступ к интернету, так как один чат-клиент будет входить в чат-сервер и как два чат-клиента будут общаться друг с другом. я просто хочу, чтобы данные передавались от одного клиента другому клиенту через чат-сервер. пожалуйста, дайте мне концепцию, или было бы лучше, если бы кто-нибудь дал мне ссылку на любое хорошее приложение для чата на основе .net, где будет сервер чата и клиент чата ......... спасибо.

Ответы [ 2 ]

3 голосов
/ 17 января 2011

Вообще?Я не вижу, как это связано с C #, но архитектура клиент-сервер выглядит следующим образом:

Client <-----> Server

Для чего-то вроде того, что вы описываете, где два или более клиентов общаются друг с другом, выпросто говорим о добавлении нескольких клиентов:

Client A <----
              |
               ----> Server
              |
Client B <----

Если клиент A хочет отправить сообщение клиенту B, то клиент A отправляет сообщение на сервер с некоторой информацией, указывающей, что оно предназначено для клиента B.Затем сервер проверяет сообщение, определяет, что оно предназначено для Клиента B, а затем передает это сообщение через соединение с Клиентом B.

Это фундаментальное определение архитектуры клиент-сервер.Существуют более продвинутые архитектуры, которые смешивают клиент-сервер с одноранговой связью, например Skype.В гибридной системе соединение от клиента к серверу обычно несет только управляющие сообщения (аутентификация и т. Д.) И запрашивает информацию о том, как связаться с другим клиентом напрямую.Преимущество такого подхода в том, что он не требует всех связи между A и B для прохождения через сервер;A и B оба подключаются к серверу, но затем они спрашивают сервер, как подключиться друг к другу напрямую, а затем используют это прямое подключение для связи с интенсивным использованием полосы пропускания.

Хотя на самом деле это все в стороне.Прежде чем приступить к разработке приложения, вам следует ознакомиться с архитектурой клиент-сервер независимо от языка или среды .

2 голосов
/ 17 января 2011
  1. Веб-служба WCF с клиентом, опрашивающим службу (простой базовый сценарий - простой в реализации, не очень эффективный)

  2. Дуплексная веб-служба WCF ссервер обновляет клиентов при необходимости (немного сложнее)

  3. Решение на основе сокетов TCP, сложнее в реализации, но обеспечивает гораздо лучший контроль.В книге Мэтью Макдональда "Pro Silverlight 3" есть очень хороший пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...