Skip to content

Приложение для обмена сообщениями через интернет

Notifications You must be signed in to change notification settings

qveex/SocketMessenger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Socket Messenger

Клиент-серверное приложение, позволяющее обмениваться сообщениями через интернет.


Для работы с подключениями используется библиотека <winsock2.h>.

Сервер принимает все входящие в него запросы по подключению и ожидает дальнейших действий. В сервере используется многопоточность. В основном (UI) потоке сервер обрабатывает запросы на подключения и создает для каждого подключения свой поток. Вторичные потоки пользователей обрабатывают запросы конкретной запущенной программы. В случае экстренных завершения первого или второго приложения отключается и возвращает код ошибки. В качестве базы данных используется обычные .txt файлы, хранящиеся на сервере. Все существующие пользователи равны в правах, функция очистки сделана в качестве требования к работе программы. Каждый пользователь обладает правами на изменения только своих данных. С базой данных идет постоянное взаимодействие, при запуске сервера осуществляется считывание данных, при внесении каких либо изменений в основные списки (пользователей или сообщений) файл перезаписывается в только что внесенными изменениями. Локер файла и остальные элементы безопасной работы с многопоточностью отсутствуют, т.к. не предусмотрена большая нагрузка на серверную часть.


Для тестирования на другом компьютере необходимо в файле Client.cpp (13 - 15 строки) в качестве айпи указать ваш действующий публичный айпи адрес и также соответствующе настроить роутер для правильного перенаправления запросов по установленному порту. Для локального тестирования достаточно раскомментировать строку localhost в том же файле и убрать действующую.

About

Приложение для обмена сообщениями через интернет

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages