diff --git a/CMakeLists.txt b/CMakeLists.txt index ed3c494..ea7bae9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,12 @@ set(SOURCE_FILES src/utils.c ) +set(CMAKE_CXX_STANDARD 11) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") + +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") + include_directories(include) add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c) diff --git a/bin/client b/bin/client index dea2ffe..3232dcf 100755 Binary files a/bin/client and b/bin/client differ diff --git a/bin/server b/bin/server index 56da69a..14f5cff 100755 Binary files a/bin/server and b/bin/server differ diff --git a/src/main b/src/main new file mode 100755 index 0000000..6f3487a Binary files /dev/null and b/src/main differ diff --git a/src/main_client.c b/src/main_client.c index cc79aac..ecb2e1d 100644 --- a/src/main_client.c +++ b/src/main_client.c @@ -16,8 +16,7 @@ int socket_type; pid_t child; int *descriptors; -socket_address_ipv4 ipv4_server_address; -socket_address_unix unix_server_address; +void* server_address; float elapsed_time_ms = 0.00; @@ -60,7 +59,7 @@ void socket_listen() } clock_t start_time = clock(); - send_buffer(socket_type == UNIX_SOCKET_FLAG ? (void*)&unix_server_address : (void*)&ipv4_server_address); + send_buffer(server_address); clock_t end_time = clock(); elapsed_time_ms = ((float)(end_time - start_time) / (CLOCKS_PER_SEC/1000)); @@ -72,21 +71,24 @@ void attribuite_and_init_socket(int socket_type) { case TCP_SOCKET_FLAG: // TCP SOCKET client_socket = create_socket(AF_INET, SOCK_STREAM); - ipv4_server_address = config_tcp_upd_server_address(); - connect_to_server((void*)&ipv4_server_address,client_socket); + socket_address_ipv4 tcp_ip_address = config_tcp_upd_server_address(); + server_address = (void*)&tcp_ip_address; + connect_to_server(server_address,client_socket); break; case UDP_SOCKET_FLAG: // UDP SOCKET client_socket = create_socket(AF_INET, SOCK_STREAM); - ipv4_server_address = config_tcp_upd_server_address(); - connect_to_server((void*)&ipv4_server_address,client_socket); + socket_address_ipv4 udp_ip_address = config_tcp_upd_server_address(); + server_address = (void*)&udp_ip_address; + connect_to_server(server_address,client_socket); break; case UNIX_SOCKET_FLAG: // UNIXDOMAIN SOCKET client_socket = create_socket(AF_UNIX, SOCK_DGRAM); - unix_server_address = config_unixdomain_server_address(); - connect_to_server((void*)&unix_server_address,client_socket); + socket_address_unix unix_ip_address = config_unixdomain_server_address(); + server_address = (void*)&unix_ip_address; + connect_to_server(server_address,client_socket); break; diff --git a/src/main_server.c b/src/main_server.c index 411534c..c8e1662 100644 --- a/src/main_server.c +++ b/src/main_server.c @@ -119,20 +119,16 @@ void get_args(int argc, char** argv) int main(int argc, char** argv) { - printf("OI0"); get_args(argc, argv); - printf("OI1"); attribuite_socket_type(socket_type); buffer = (int*)malloc(buffer_size*sizeof(int)); - printf("OI2"); - //bind_server(server_address, socket_type, server_socket); - printf("OI3"); + + bind_server(server_address, socket_type, server_socket); + for(int i = 0; i < num_of_read_bytes; i++) { server_listen(); } - - printf("OI4"); return SYSTEM_EXIT_SUCCESS; } diff --git a/src/socket.c b/src/socket.c index 8194e01..3a47d5a 100644 --- a/src/socket.c +++ b/src/socket.c @@ -45,13 +45,11 @@ socket_address_ipv4 config_tcp_upd_server_address() void connect_to_server(void *server_address, int client_socket) { - socket_address_ipv4 server = config_tcp_upd_server_address(); - - struct sockaddr* address = (struct sockaddr*)&server; + struct sockaddr* address = (struct sockaddr*)&server_address; int connection_response = connect(client_socket, address, - (socklen_t)sizeof(server) + (socklen_t)sizeof(server_address) ); if(connection_response == SOCKET_ERROR_CODE) @@ -66,10 +64,9 @@ void connect_to_server(void *server_address, int client_socket) void bind_server(void *server_address, int socket_type, int server_socket) { - socket_address_ipv4 server = config_tcp_upd_server_address(); - struct sockaddr* address = (struct sockaddr*)&server; + struct sockaddr* address = (struct sockaddr*)&server_address; - int server_bind_response = bind(server_socket, address, sizeof(server)); + int server_bind_response = bind(server_socket, address, sizeof(server_address)); if (socket_type == UNIX_SOCKET_FLAG) unlink((const char*)address);