update 1.0.1

This commit is contained in:
wt
2023-05-03 09:33:36 +07:00
parent 15d6237b02
commit cae5f7a8f4
5 changed files with 238 additions and 25 deletions
+21 -8
View File
@@ -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
@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)"
+139
View File
@@ -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
+1 -1
View File
@@ -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));
+71 -3
View File
@@ -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
+6 -13
View File
@@ -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);
}
}
}