Files
unix/lab5/main.c
2025-11-17 11:26:08 +01:00

54 lines
1.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Сетевой чат с использованием неблокирующих сокетов и 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 <stdio.h>
#include <stdlib.h>
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;
}