/* * Сетевой чат с использованием неблокирующих сокетов и select() * * Компиляция: make * * Запуск: ./chatserver [порт] * Примеры: * ./chatserver * ./chatserver 3425 * * Остановка: pkill chatserver * * Просмотр логов: * sudo journalctl -f -t CHAT-SERVER * sudo journalctl -f -t CHAT-SERVER --since "now" -p info * * Подключение клиентов: * telnet localhost 3425 * * Использование чата: * 1. При подключении введите свое имя * 2. Отправляйте сообщения - они будут видны всем (broadcast) * 3. Для личного сообщения: @имя: текст сообщения * Пример: @Alice: привет, как дела? * 4. Для группового сообщения: @имя1,имя2,имя3: текст сообщения * Пример: @Alice,Bob: привет вам обоим! */ #include "server.h" #include #include int main(int argc, char *argv[]) { int port = 3425; if (argc > 1) { port = atoi(argv[1]); if (port <= 0 || port > 65535) { fprintf(stderr, "Invalid port: %s\n", argv[1]); fprintf(stderr, "Port must be between 1 and 65535\n"); return 1; } } printf("Starting chat server on port %d...\n", port); printf("Connect with: telnet localhost %d\n", port); printf("View logs: sudo journalctl -f -t CHAT-SERVER\n"); printf("Stop server: pkill chatserver\n"); chat_server(port); return 0; }