lab5
This commit is contained in:
53
lab5/main.c
Normal file
53
lab5/main.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Сетевой чат с использованием неблокирующих сокетов и 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;
|
||||
}
|
||||
Reference in New Issue
Block a user