Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
qveex authored Apr 4, 2021
1 parent 805c060 commit 1ef908e
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# SocketMessenger
Клиент-серверное приложение, позволяющее обмениваться сообщениями через интернет.
# Socket Messenger
## Клиент-серверное приложение, позволяющее обмениваться сообщениями через интернет.

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

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

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

0 comments on commit 1ef908e

Please sign in to comment.