2.1 KiB
2.1 KiB
Czat IPC
Aplikacja czatu klient-serwer zaimplementowana w języku C z wykorzystaniem mechanizmów IPC. System obsługuje wiadomości bezpośrednie, czaty grupowe, wiadomości offline oraz zarządzanie użytkownikami.
Kompilacja
Projekt wykorzystuje biblioteke libconfig do przetwarzania danych konfiguracyjnych serwera.
- Instalacja na Debian/Ubuntu:
sudo apt-get install libconfig-dev - Instalacja na Fedora:
sudo dnf install libconfig-devel
Projekt wykorzystuje standardowy plik Makefile. Aby skompilować serwer i klienta:
make all
Skompilowane progarmy będą znajdować się w folderze ./build
Użycie
1. Serwer
Do uruchomienia serwera, wymagany jest plik konfiguracyjny. Jeżeli nie podano ścieżki do pliku, serwer spróbuje wczytać scieżke ./example.conf
./build/server [plik_konfiguracyjny]
2. Klient
Klient łączy się z serwerem używając id_klienta zdefiniowanego w konfiguracji.
./build/client <id_klienta>
<id_klienta>: Musi pasować do polaidzdefiniowanego na liścieclientsw pliku konfiguracyjnym (np. "test1", "test2").
Komendy Klienta
Po uruchomieniu klienta dostępne są następujące komendy:
/msg <nick> <wiadomość>: Wyślij wiadomość bezpośrednią do użytkownika/msg #<grupa> <wiadomość>: Wyślij wiadomość do grupy/join <grupa>: Dołączenie do określonej grupy/leave <grupa>: Opuszczenie danej grupy/list active: Wyświetla listę aktualnie połączonych użytkowników./list all: Wyświetla listę wszystkich użytkowników/list groups: Wyświetla listę dostępnych grup/inbox: Pobranie wiadomości offline/mute <nick|#grupa>: Wyciszenie użytkownika/grupy/unmute <nick|#grupa>: Odciszenie użytkownika/grupy/quit,/exit,/q: Wylogowanie i wyjście z programu
Struktura Projektu
server.c: Program serweraclient.c: Program klientautil/: Funkcje pomocnicze i moduł ładowania konfiguracji.commands.h: Współdzielone definicje struktur protokołu i stałych.example.conf: Przykładowy plik konfiguracyjny dla użytkowników i grup.