Трансляция сообщения с сервера на нескольких клиентов с использованием C # - PullRequest
0 голосов
/ 19 августа 2011

Сценарий : Хотите передать сообщение нескольким клиентам с сервера.

Требуется : У меня есть сервер и несколько клиентов, подключенных к этому серверу.Если администратор хочет обновить сервер, сервер отправит всем подключенным клиентам сообщение «Пожалуйста, выйдите из системы ... сервер обновляется».

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

Язык : c #

1 Ответ

1 голос
/ 18 мая 2015

Для TCP я использую поток, который инициализируется из потока протокола основного сервера; когда происходит изменение в основной структуре данных, которую необходимо отправить каждому клиенту, устанавливается статическое логическое значение и отправляет эти соответствующие данные клиенту, который также имеет поток, который реализуется из потока основного протокола клиента для прослушивания и реализовать эти изменения.

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

Это более сложная задача в логике, чем использование одной строки кода. Независимо от того, какой интерфейс библиотеки должен был бы использовать подобную логику в том смысле, что он должен связываться с (n) числом клиентов.

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

edit: чтобы никто не жаловался, я говорю прямо по TCP / IP, а не по UDP, где необходимо установить соединение. UDP использует многоадресную концепцию, и ее настройка довольно проста. Осторожно, он подвержен риску безопасности, и хотя он действительно обеспечивает некоторую эффективность, его область применения следует рассматривать как ограниченную.

...