54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
/*
|
||
* Сетевой чат с использованием неблокирующих сокетов и 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;
|
||
}
|