Научная статья на тему 'РАЗРАБОТКА КОРПОРАТИВНОГО КЛИЕНТ-СЕРВЕРНОГО ЧАТА ДЛЯ ЛОКАЛЬНОЙ СЕТИ ПРЕДПРИЯТИЯ'

РАЗРАБОТКА КОРПОРАТИВНОГО КЛИЕНТ-СЕРВЕРНОГО ЧАТА ДЛЯ ЛОКАЛЬНОЙ СЕТИ ПРЕДПРИЯТИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
66
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММА / ЧАТ / МЕССЕНДЖЕР / ПОЛЬЗОВАТЕЛИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Письмак Д.И., Бегалин А.Ш.

Статья посвящена описанию процесса разработки и использования корпоративного клиент-серверного чата для локальной сети предприятия. Программа реализована в среде Visual Studio и представляет собой приложение на основе Windows Forms. В программе имеются функции обмена общими, приватными, групповыми сообщениями, регистрация групп и пользователей, панель администрирования.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

AUTOMATION OF THE WORKPLACE OF THE MEDICAL CENTER REGISTRATOR

The article is devoted to the description of the process of development and use of corporative client-server chat for local network of enterprice. The program is implemented in the Visual Studio environment and is an application. The program has the functions of message rotation in public, group and private chats, user and group registration, administration panel.

Текст научной работы на тему «РАЗРАБОТКА КОРПОРАТИВНОГО КЛИЕНТ-СЕРВЕРНОГО ЧАТА ДЛЯ ЛОКАЛЬНОЙ СЕТИ ПРЕДПРИЯТИЯ»

УДК 004.4

Письмак Д.И. студент 4 курса специальность Информационные системы

Бегалин А.Ш. ст. преподаватель кафедра «Информационные системы» КГУ имени А. Байтурсынова Казахстан, г. Костанай РАЗРАБОТКА КОРПОРАТИВНОГО КЛИЕНТ-СЕРВЕРНОГО ЧАТА ДЛЯ ЛОКАЛЬНОЙ СЕТИ ПРЕДПРИЯТИЯ Аннотация: Статья посвящена описанию процесса разработки и использования корпоративного клиент-серверного чата для локальной сети предприятия. Программа реализована в среде Visual Studio и представляет собой приложение на основе Windows Forms. В программе имеются функции обмена общими, приватными, групповыми сообщениями, регистрация групп и пользователей, панель администрирования.

Ключевые слова: программа, чат, Visual Studio, мессенджер, пользователи.

Pismak D.I.

Student

4 year, specialty Information Systems KSU after A. Baytursynov Kazakhstan, Kostanay city Begalin A.Sh.

Art. Lecturer of the department "Information Systems"

KSU after A. Baytursynov Kazakhstan, Kostanay city AUTOMATION OF THE WORKPLACE OF THE MEDICAL CENTER REGISTRATOR Annotation: The article is devoted to the description of the process of development and use of corporative client-server chat for local network of enterprice. The program is implemented in the Visual Studio environment and is an application. The program has the functions of message rotation in public, group and private chats, user and group registration, administration panel. Key words: program, chat, Visual Studio, messenger, users.

Корпоративный клиент-серверный чат для локальной сети предприятия позволяет обмениваться сообщениями зарегистрированным пользователям в трех видах чатов (публичный, приватный, групповой) и являет собой 2 приложения (клиентское и серверное) написанные в среде Visual Studio на языке C# с использованием Windows Forms.

В основе локального чата лежит технология ТСР-соединений, что гарантирует доставку сообщений до конечного адресата, в отличии ЦОР протокола. В качестве адреса, однозначно определяющего, серверные и клиентские машины в сети используется адрес-IPv4, как наиболее распространенный по состоянию на 2018 год. Программа разделена на 2 части: клиенсткую и серверную, с целью распределения нагрузки и потоков передачи сообщений. Интерфейс клиентского приложения выглядит в соответствии с рисунком 1.

Рисунок 1. Клиентский интерфейс Класс CorpServer содержит в себе следующие переменные: htUsers - хэш-таблица, хранящая в себе до 30 объектов включающая в себя имя пользователя в качестве ключа и соединение в качестве данных

htConnections - хэш-таблица, хранящая в себе до 30 объектов, включающая в себя соединение в качестве ключа и имя пользователя в качестве данных

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

Переменная очереди (Queue) Banned хранит в себе список пользователей чье подключение раннее было ограничено администратором и используется для выполнения административных функций в дальнейших методах.

Описание рассылки сообщений

Для работы с соединениями создается отдельный поток (Thread) с каждым клиентом и работа с клиентами осуществляется поочередно, с использованием отдельных потоков в цикле. Данный способ реализован следующим образом:

public static void SendCorpChatMessages(string Message) {

StreamWriter swSenderSender;

e = new StatusChangedEventArgs(Message);

OnStatusChanged(e);

// массив юзеров, определение количества TcpClient[] tcpClients = new TcpClient[CorpServer.htUsers.Count]; // помещает всех ТСРклиентов в массив CorpServer.htUsers.Values.CopyTo(tcpClients, 0); // рассылка сообщения в цикле

for (int i = 0; i < tcpClients.Length; i++) {

// кидаем каждому сообщение

try

{

// если сообщение пустое или пользователя нет - пропуск

if (Message.Trim() == "" || tcpClients[i] == null)

{

continue; }

// отсылает сообщение выбранному юзеру

swSenderSender = new StreamWriter(tcpClients[i].GetStream());

swSenderSender.WriteLine(Message);

swSenderSender.Flush();

swSenderSender = null;

Метод SendCorpChatMessages используется для рассылки сообщений/команд от сервера к клиенту. В первую очередь создается объект для записи данных в поток StreamWriter. В случае возникновения какого либо события (как появление нового сообщения команды) создается массив соединений tcpClients, размером, определяемым количеством записей в htUsers и значениями непосредственно из хэш-таблицы htUsers. Затем, запускается цикл и в случае если соединение соответствует всем условиям, то в поток вносится запись, содержащая в себе сообщение/команду, после чего потом закрывается и очищается, затем цикл переходит к следующему соединению. В случае если соединение отсутствует, однако запись о пользователе есть в хэш-таблице, значит пользователь удаляется их хэш-таблицы и массива tcpClients.

Использованные источники:

1. Уведомление о событии в приложении, 2017. - режим доступа к источнику: https://stackoverflow.com/questions/15085970/implement-buzz-feature.

2. Многопоточность в клиент-серверных приложениях/ Metanit, 2015. -режим доступа к источнику: https://metanit.eom/sharp/net/4.3.php.

i Надоели баннеры? Вы всегда можете отключить рекламу.