diff --git a/Makefile b/Makefile index 53028a6..5c52a80 100644 --- a/Makefile +++ b/Makefile @@ -5,18 +5,31 @@ SRC_SERVER = ./src/server.cpp SRC_CLIENT = ./src/client.cpp INSTALL_DIR = /usr/local/bin/ +GREEN = \033[0;32m +YELLOW = \033[0;33m +RESET = \033[0m +RED = \033[0;31m + build: - $(CXX) -o $(DESTDIR)server $(SRC_SERVER) $(CXX_FLAGS) - $(CXX) -o $(DESTDIR)client $(SRC_CLIENT) $(CXX_FLAGS) - upx $(DESTDIR)server - upx $(DESTDIR)client + @echo -e "$(GREEN)[ $(YELLOW)25% $(GREEN)] $(RESET)CC SERVER" + @$(CXX) -o $(DESTDIR)server $(SRC_SERVER) $(CXX_FLAGS) + @echo -e "$(GREEN)[ $(YELLOW)50% $(GREEN)] $(RESET)CC CLIENT" + @$(CXX) -o $(DESTDIR)client $(SRC_CLIENT) $(CXX_FLAGS) + @echo -e "$(GREEN)[ $(YELLOW)75% $(GREEN)] $(RESET)STRIP SERVER" + @upx $(DESTDIR)server >> /dev/null + @echo -e "$(GREEN)[ $(YELLOW)100% $(GREEN)] $(RESET)STRIP CLIENT" + @upx $(DESTDIR)client >> /dev/null + @echo -e "$(GREEN)BUILD SUCCESS$(RESET)" runserver: - $(DESTDIR)server 127.0.0.1 8000 + @$(DESTDIR)server 127.0.0.1 43243 runclient: - $(DESTDIR)client 127.0.0.1 8000 + @$(DESTDIR)client 127.0.0.1 43243 install: - cp -rf $(DESTDIR)server $(INSTALL_DIR)udpchatserver - cp -rf $(DESTDIR)client $(INSTALL_DIR)udpchatclient \ No newline at end of file + @echo -e "$(GREEN)[ $(YELLOW)50% $(GREEN)] $(RESET)INSTALL SERVER" + @cp -rf $(DESTDIR)server $(INSTALL_DIR)udpchatserver + @echo -e "$(GREEN)[ $(YELLOW)100% $(GREEN)] $(RESET)INSTALL CLIENT" + @cp -rf $(DESTDIR)client $(INSTALL_DIR)udpchatclient + @echo -e "$(GREEN)INSTALL SUCCESS$(RESET)" \ No newline at end of file diff --git a/bin/udpchatserver.log b/bin/udpchatserver.log index 8cb88b5..be1083e 100644 --- a/bin/udpchatserver.log +++ b/bin/udpchatserver.log @@ -35,3 +35,142 @@ [ i ] lisa [ 17:17:20 ] : gdf [ i ] lisa [ 17:17:20 ] : g [ i ] lisa [ 17:17:20 ] : sdf +[ i ] tola [ 08:48:44 ] : hi +[ i ] lisa [ 08:48:55 ] : ho +[ i ] tola [ 08:49:11 ] : how old are you +[ i ] lisa [ 08:49:13 ] : 18 +[ i ] tola [ 08:49:16 ] : oh +[ i ] tola [ 08:49:22 ] : im 20 +[ i ] lisa [ 08:49:28 ] : good +[ i ] tola [ 08:49:30 ] : ok +[ i ] tola [ 08:55:33 ] : asdf +[ i ] tola [ 08:55:33 ] : asdf +[ i ] tola [ 08:55:33 ] : asd +[ i ] tola [ 08:55:34 ] : fa +[ i ] tola [ 08:55:34 ] : sd +[ i ] tola [ 08:55:34 ] : fa +[ i ] tola [ 08:55:34 ] : sdf +[ i ] tola [ 08:55:34 ] : a +[ i ] tola [ 08:55:34 ] : sdf +[ i ] tola [ 08:55:36 ] : saf +[ i ] lisa [ 08:55:37 ] : as +[ i ] lisa [ 08:55:37 ] : dfa +[ i ] lisa [ 08:55:38 ] : sdf +[ i ] lisa [ 08:55:38 ] : asd +[ i ] lisa [ 08:55:38 ] : fa +[ i ] lisa [ 08:55:38 ] : sdf +[ i ] lisa [ 08:55:38 ] : asdfg +[ i ] lisa [ 08:55:39 ] : asd +[ i ] lisa [ 08:55:39 ] : g +[ i ] lisa [ 08:55:39 ] : dvb +[ i ] lisa [ 08:55:39 ] : sd +[ i ] lisa [ 08:55:39 ] : fb +[ i ] lisa [ 08:55:40 ] : sdv +[ i ] lisa [ 08:55:40 ] : sdf +[ i ] lisa [ 08:55:40 ] : vs +[ i ] lisa [ 08:55:40 ] : dfv +[ i ] lisa [ 08:55:40 ] : sd +[ i ] lisa [ 08:55:41 ] : asd +[ i ] lisa [ 08:55:42 ] : f +[ i ] lisa [ 08:55:42 ] : asdf +[ i ] lisa [ 08:55:42 ] : as +[ i ] lisa [ 08:55:42 ] : dfa +[ i ] lisa [ 08:55:42 ] : sd +[ i ] lisa [ 08:55:42 ] : fa +[ i ] lisa [ 08:55:43 ] : s +[ i ] lisa [ 08:55:45 ] : clear +[ i ] lisa [ 08:55:46 ] : clear +[ i ] lisa [ 08:55:47 ] : clear +[ i ] lisa [ 08:55:47 ] : clea +[ i ] lisa [ 08:55:48 ] : rclear +[ i ] lisa [ 08:55:49 ] : clear +[ i ] lisa [ 08:55:49 ] : clea +[ i ] lisa [ 08:55:50 ] : rclear +[ i ] lisa [ 08:55:51 ] : clear +[ i ] lisa [ 08:55:52 ] : clear +[ i ] lisa [ 08:55:53 ] : celar +[ i ] lisa [ 08:55:54 ] : clear +[ i ] lisa [ 09:25:26 ] : asd +[ i ] lisa [ 09:25:28 ] : asd +[ i ] lisa [ 09:25:29 ] : asd +[ i ] lisa [ 09:25:30 ] : zsdv +[ i ] lisa [ 09:25:30 ] : asdfv +[ i ] lisa [ 09:25:31 ] : asdfv +[ i ] lisa [ 09:25:31 ] : asd +[ i ] lisa [ 09:25:31 ] : f +[ i ] lisa [ 09:25:31 ] : asdf +[ i ] lisa [ 09:25:31 ] : as +[ i ] lisa [ 09:25:32 ] : df +[ i ] lisa [ 09:25:32 ] : a +[ i ] lisa [ 09:25:32 ] : dsv +[ i ] lisa [ 09:25:32 ] : asdv +[ i ] lisa [ 09:25:32 ] : a +[ i ] lisa [ 09:25:33 ] : sdv +[ i ] tola [ 09:26:31 ] : asdf +[ i ] tola [ 09:26:31 ] : asd +[ i ] tola [ 09:26:32 ] : fas +[ i ] tola [ 09:26:32 ] : df +[ i ] tola [ 09:26:32 ] : asd +[ i ] tola [ 09:26:32 ] : fas +[ i ] tola [ 09:26:32 ] : df +[ i ] tola [ 09:26:33 ] : asd +[ i ] tola [ 09:26:33 ] : fa +[ i ] tola [ 09:26:33 ] : sd +[ i ] tola [ 09:26:33 ] : fa +[ i ] tola [ 09:26:33 ] : sdf +[ i ] tola [ 09:26:34 ] : a +[ i ] tola [ 09:26:34 ] : sdf +[ i ] tola [ 09:26:34 ] : a +[ i ] tola [ 09:26:34 ] : sdf +[ i ] tola [ 09:26:34 ] : as +[ i ] tola [ 09:26:35 ] : df +[ i ] tola [ 09:26:35 ] : asdf +[ i ] tola [ 09:26:35 ] : a +[ i ] tola [ 09:26:35 ] : sd +[ i ] tola [ 09:26:35 ] : fa +[ i ] tola [ 09:26:36 ] : f +[ i ] tola [ 09:26:36 ] : asd +[ i ] tola [ 09:26:36 ] : f +[ i ] lisa [ 09:26:37 ] : as +[ i ] lisa [ 09:26:37 ] : dfa +[ i ] lisa [ 09:26:37 ] : sdf +[ i ] lisa [ 09:26:38 ] : a +[ i ] lisa [ 09:26:38 ] : sdf +[ i ] lisa [ 09:26:38 ] : af +[ i ] lisa [ 09:26:38 ] : d +[ i ] lisa [ 09:26:38 ] : f +[ i ] lisa [ 09:26:39 ] : f +[ i ] lisa [ 09:26:39 ] : d +[ i ] lisa [ 09:26:39 ] : f +[ i ] lisa [ 09:26:40 ] : d +[ i ] lisa [ 09:26:41 ] : d +[ i ] lisa [ 09:26:42 ] : d +[ i ] lisa [ 09:26:43 ] : dfgs +[ i ] lisa [ 09:26:43 ] : h +[ i ] lisa [ 09:26:43 ] : ds +[ i ] lisa [ 09:26:43 ] : grfh +[ i ] lisa [ 09:26:44 ] : d +[ i ] lisa [ 09:26:44 ] : +[ i ] lisa [ 09:26:44 ] : rtg +[ i ] lisa [ 09:26:50 ] : hello awner foaregjkaeurhgiaergaer gh aurh gaerhga r +[ i ] lisa [ 09:26:53 ] : aierh gaueh rgae rhg aherg uae gaer ghaer ghaer gh aer gh aergh +[ i ] lisa [ 09:32:48 ] : asdf +[ i ] lisa [ 09:32:49 ] : asdf +[ i ] lisa [ 09:32:49 ] : asdfg +[ i ] lisa [ 09:32:49 ] : sdf +[ i ] lisa [ 09:32:50 ] : gs +[ i ] lisa [ 09:32:50 ] : dfg +[ i ] tola [ 09:32:51 ] : adsf +[ i ] tola [ 09:32:51 ] : gs +[ i ] tola [ 09:32:51 ] : dfg +[ i ] tola [ 09:32:52 ] : sdfgb +[ i ] tola [ 09:32:52 ] : s +[ i ] tola [ 09:32:52 ] : gh +[ i ] tola [ 09:32:52 ] : s +[ i ] tola [ 09:32:52 ] : ert +[ i ] tola [ 09:32:53 ] : a +[ i ] tola [ 09:32:53 ] : sef +[ i ] tola [ 09:32:53 ] : bs +[ i ] tola [ 09:32:53 ] : dfb +[ i ] tola [ 09:32:55 ] : sdb +[ i ] lisa [ 09:32:56 ] : sd diff --git a/src/client.cpp b/src/client.cpp index 529a582..0fe763c 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -54,7 +54,7 @@ int main(int argc, char** argv) { addr.sin_addr.s_addr = inet_addr(ip); char username[50]; - std::cout << "Enter tour username:\n\t" << GREEN; + std::cout << "Enter your username:\n\t" << GREEN; bzero(username, 50); std::cin.getline(username, 50); sendto(sockfd, username, 50, 0, (struct sockaddr*)&addr, sizeof(addr)); diff --git a/src/colors.h b/src/colors.h index 9f2c514..2bda9c7 100644 --- a/src/colors.h +++ b/src/colors.h @@ -1,9 +1,77 @@ #ifndef UDP_CHAT_COLORS_H #define UDP_CHAT_COLORS_H -#define GREEN "\033[0;32m" -#define BLUE "\033[0;34m" +// reset #define RESET "\033[0m" -#define YELLOW "\033[1;33m" + +// regular colrs +#define GREEN "\033[0;32m" // GREEN +#define BLUE "\033[0;34m" // BLUE +#define YELLOW "\033[1;33m" // YELLOW +#define RED "\033[0;31m" // RED +#define BLACK "\033[0;30m" // BLACK +#define PURPLE "\033[0;35m" // PURPLE +#define CYAN "\033[0;36m" // CYAN +#define WHITE "\033[0;37m" // WHITE + +// bold +#define BBLACK "\033[1;30m" // BLACK +#define BRED "\033[1;31m" // RED +#define BGREEN "\033[1;32m" // GREEN +#define BYELLOW "\033[1;33m" // YELLOW +#define BBLUE "\033[1;34m" // BLUE +#define BPURPLE "\033[1;35m" // PURPLE +#define BCYAN "\033[1;36m" // CYAN +#define BWHITE "\033[1;37m" // WHITE + +// Underline +#define UBLACK "\033[4;30m" // BLACK +#define URED "\033[4;31m" // RED +#define UGREEN "\033[4;32m" // GREEN +#define UYELLOW "\033[4;33m" // YELLOW +#define UBLUE "\033[4;34m" // BLUE +#define UPURPLE "\033[4;35m" // PURPLE +#define UCYAN "\033[4;36m" // CYAN +#define UWHITE "\033[4;37m" // WHITE + +// Background +#define ON_BLACK "\033[40m" // BLACK +#define ON_RED "\033[41m" // RED +#define ON_GREEN "\033[42m" // GREEN +#define ON_YELLOW "\033[43m" // YELLOW +#define ON_BLUE "\033[44m" // BLUE +#define ON_PURPLE "\033[45m" // PURPLE +#define ON_CYAN "\033[46m" // CYAN +#define ON_WHITE "\033[47m" // WHITE + +// High Intensity +#define IBLACK "\033[0;90m" // BLACK +#define IRED "\033[0;91m" // RED +#define IGREEN "\033[0;92m" // GREEN +#define IYELLOW "\033[0;93m" // YELLOW +#define IBLUE "\033[0;94m" // BLUE +#define IPURPLE "\033[0;95m" // PURPLE +#define ICYAN "\033[0;96m" // CYAN +#define IWHITE "\033[0;97m" // WHITE + +// Bold High Intensity +#define BIBLACK "\033[1;90m" // BLACK +#define BIRED "\033[1;91m" // RED +#define BIGREEN "\033[1;92m" // GREEN +#define BIYELLOW "\033[1;93m" // YELLOW +#define BIBLUE "\033[1;94m" // BLUE +#define BIPURPLE "\033[1;95m" // PURPLE +#define BICYAN "\033[1;96m" // CYAN +#define BIWHITE "\033[1;97m" // WHITE + +// High Intensity backgrounds +#define ON_IBLACK "\033[0;100m" // BLACK +#define ON_IRED "\033[0;101m" // RED +#define ON_IGREEN "\033[0;102m" // GREEN +#define ON_IYELLOW "\033[0;103m" // YELLOW +#define ON_IBLUE "\033[0;104m" // BLUE +#define ON_IPURPLE "\033[0;105m" // PURPLE +#define ON_ICYAN "\033[0;106m" // CYAN +#define ON_IWHITE "\033[0;107m" // WHITE #endif // UDP_CHAT_COLORS_H \ No newline at end of file diff --git a/src/server.cpp b/src/server.cpp index 716cc3b..99f9822 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -14,13 +14,13 @@ #define LOGFILE "udpchatserver.log" -//структура одного клиента на сервере +// structure of one client on server struct client_t { sockaddr_in addr; - char username[1024]; //пример данных которые нужно менять при отправке пакета от клиента на наш сервер + char username[1024]; // example of data }; -const int num_of_clients = 64; // количество клиентов +const int num_of_clients = 64; // clients quantity client_t clients[num_of_clients]; bool HaveClient(sockaddr_in addr) @@ -43,7 +43,6 @@ int main(int argc, char** argv) { int sockfd = -1; struct sockaddr_in server_addr; - socklen_t addr_size; int n; sockfd = socket(AF_INET, SOCK_DGRAM, 0); @@ -62,23 +61,18 @@ int main(int argc, char** argv) { if (n < 0) { perror("[-] bind error"); exit(1); + } else { + printf("%sSERVER STARTED ON %sIP %s%s %sPORT %s%d%s\n", BIGREEN, BIYELLOW, BIWHITE, ip, BIYELLOW, BIWHITE, port, RESET); } sockaddr_in client_addr; unsigned int clientlength = sizeof(client_addr); - for (int i = 0; i < num_of_clients; i++) { - std::cout << clients[i].addr.sin_port << clients[i].addr.sin_addr.s_addr << ";"; - } - - char buffer[1024]; fd_set rset; FD_ZERO(&rset); int maxfdp1 = sockfd + 1; - int nready; - while (1) { FD_SET(sockfd, &rset); if ((select(maxfdp1, &rset, NULL, NULL, NULL)) < 0) { @@ -133,14 +127,13 @@ int main(int argc, char** argv) { strcat(res, buffer); strcat(res, RESET); sendto(sockfd, res, 1024, 0, (sockaddr *) &clients[i].addr, sizeof(clients[i].addr)); - printf("[ i ] %s\n", res); + printf("%s[ i ] %s\n", CYAN, res); strcat(logres, " [ "); strcat(logres, time); strcat(logres, " ] : "); strcat(logres, buffer); logfile << "[ i ] " << logres << "\n"; logfile.close(); - // fprintf(logfile, "[ i ] %s\n", res); } } }