Проектирование и написание программы общения по локальной сети (чат) на основе протокола TCP/IP

Страницы работы

Фрагмент текста работы

получено сообщение и если нет то, спешит послать регистрационную информацию о себе, подобную той что, была получена. После обмена такими приветственными сообщениями, клиент вошедший в чат становится полноправным участником беседы и в основной форме отображаются число и “ники” пользователей подключенных в данный момент к чату. Кроме всего у каждого из присутствующих появляется сообщение о вновь прибывшем.

Теперь набрав в нижнеи строке сообщение можно послать его всем присутсвующим. Для посылки частного сообщения достаточно щелчком правой кнопкой мыши на соответствующем “нике” вызвать контекстное меню и выбрать из него Private Message. При ошибке в выборе пользователя, его повторно можно выбрать в ComboBoxe появившейся формы.

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

В процессе общения пользователь может посмотреть с кем он общается, то есть вывести регистрационную информацию о пользователях находящихся в чате. Для этого в контекстном меню нужно выбрать Who Is. Появится форма в которую выводится информация о соответствующем пользователе: имя, название компьютера, ник и IP адрес клиента. 

В программе также реализовано звуковое оповещение пользователя о пришедшем сообщении. Когда приходит какое - либо сообщение проверяется свернута ли основная форма если да, то с помощью функции PlaySound проигрываем указанный зарнее wav файл. Звуковой файл который нужно проигрывать в данном случае можно указать в опциях чата.

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

Если же происходит событие то таймер сбрасывается, проверяется находиться ли пользователь в режиме “offline”, и если да то всем рассылается сообщение о том, что пользователь вернулся, у клиентов при получении такого сообщения значок пользователя находившегося

Похожие материалы

Информация о работе