Fix bind server bug
This commit is contained in:
parent
753338e657
commit
470878e3b2
|
|
@ -11,6 +11,12 @@ set(SOURCE_FILES
|
||||||
src/utils.c
|
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)
|
include_directories(include)
|
||||||
|
|
||||||
add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c)
|
add_executable(./bin/server ${SOURCE_FILES} ./src/main_server.c)
|
||||||
|
|
|
||||||
BIN
bin/client
BIN
bin/client
Binary file not shown.
BIN
bin/server
BIN
bin/server
Binary file not shown.
|
|
@ -16,8 +16,7 @@ int socket_type;
|
||||||
pid_t child;
|
pid_t child;
|
||||||
int *descriptors;
|
int *descriptors;
|
||||||
|
|
||||||
socket_address_ipv4 ipv4_server_address;
|
void* server_address;
|
||||||
socket_address_unix unix_server_address;
|
|
||||||
|
|
||||||
float elapsed_time_ms = 0.00;
|
float elapsed_time_ms = 0.00;
|
||||||
|
|
||||||
|
|
@ -60,7 +59,7 @@ void socket_listen()
|
||||||
}
|
}
|
||||||
|
|
||||||
clock_t start_time = clock();
|
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();
|
clock_t end_time = clock();
|
||||||
|
|
||||||
elapsed_time_ms = ((float)(end_time - start_time) / (CLOCKS_PER_SEC/1000));
|
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
|
case TCP_SOCKET_FLAG: // TCP SOCKET
|
||||||
client_socket = create_socket(AF_INET, SOCK_STREAM);
|
client_socket = create_socket(AF_INET, SOCK_STREAM);
|
||||||
ipv4_server_address = config_tcp_upd_server_address();
|
socket_address_ipv4 tcp_ip_address = config_tcp_upd_server_address();
|
||||||
connect_to_server((void*)&ipv4_server_address,client_socket);
|
server_address = (void*)&tcp_ip_address;
|
||||||
|
connect_to_server(server_address,client_socket);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UDP_SOCKET_FLAG: // UDP SOCKET
|
case UDP_SOCKET_FLAG: // UDP SOCKET
|
||||||
client_socket = create_socket(AF_INET, SOCK_STREAM);
|
client_socket = create_socket(AF_INET, SOCK_STREAM);
|
||||||
ipv4_server_address = config_tcp_upd_server_address();
|
socket_address_ipv4 udp_ip_address = config_tcp_upd_server_address();
|
||||||
connect_to_server((void*)&ipv4_server_address,client_socket);
|
server_address = (void*)&udp_ip_address;
|
||||||
|
connect_to_server(server_address,client_socket);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UNIX_SOCKET_FLAG: // UNIXDOMAIN SOCKET
|
case UNIX_SOCKET_FLAG: // UNIXDOMAIN SOCKET
|
||||||
client_socket = create_socket(AF_UNIX, SOCK_DGRAM);
|
client_socket = create_socket(AF_UNIX, SOCK_DGRAM);
|
||||||
unix_server_address = config_unixdomain_server_address();
|
socket_address_unix unix_ip_address = config_unixdomain_server_address();
|
||||||
connect_to_server((void*)&unix_server_address,client_socket);
|
server_address = (void*)&unix_ip_address;
|
||||||
|
connect_to_server(server_address,client_socket);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,20 +119,16 @@ void get_args(int argc, char** argv)
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
|
|
||||||
printf("OI0");
|
|
||||||
get_args(argc, argv);
|
get_args(argc, argv);
|
||||||
printf("OI1");
|
|
||||||
attribuite_socket_type(socket_type);
|
attribuite_socket_type(socket_type);
|
||||||
|
|
||||||
buffer = (int*)malloc(buffer_size*sizeof(int));
|
buffer = (int*)malloc(buffer_size*sizeof(int));
|
||||||
printf("OI2");
|
|
||||||
//bind_server(server_address, socket_type, server_socket);
|
bind_server(server_address, socket_type, server_socket);
|
||||||
printf("OI3");
|
|
||||||
for(int i = 0; i < num_of_read_bytes; i++)
|
for(int i = 0; i < num_of_read_bytes; i++)
|
||||||
{
|
{
|
||||||
server_listen();
|
server_listen();
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("OI4");
|
|
||||||
return SYSTEM_EXIT_SUCCESS;
|
return SYSTEM_EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
src/socket.c
11
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)
|
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_address;
|
||||||
|
|
||||||
struct sockaddr* address = (struct sockaddr*)&server;
|
|
||||||
|
|
||||||
int connection_response = connect(client_socket,
|
int connection_response = connect(client_socket,
|
||||||
address,
|
address,
|
||||||
(socklen_t)sizeof(server)
|
(socklen_t)sizeof(server_address)
|
||||||
);
|
);
|
||||||
|
|
||||||
if(connection_response == SOCKET_ERROR_CODE)
|
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)
|
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_address;
|
||||||
struct sockaddr* address = (struct sockaddr*)&server;
|
|
||||||
|
|
||||||
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);
|
if (socket_type == UNIX_SOCKET_FLAG) unlink((const char*)address);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue