diff --git a/PlayerTracker b/PlayerTracker index 2ec209d..c6467b4 100755 Binary files a/PlayerTracker and b/PlayerTracker differ diff --git a/include/net.hpp b/include/net.hpp index 4b3f590..8193c82 100644 --- a/include/net.hpp +++ b/include/net.hpp @@ -17,7 +17,6 @@ class Socket { private: // Socket file descriptor int sock_server; - int sock_server_rev; int sock_unix; struct sockaddr_in server_addr; struct sockaddr_un server_addr_unix; diff --git a/source/net.cpp b/source/net.cpp index 2e256ab..a0795fc 100644 --- a/source/net.cpp +++ b/source/net.cpp @@ -17,7 +17,7 @@ Socket::~Socket() { } void Socket::connect_server(const char *ip, uint16_t port) { - this->server_port_input = port; + this->server_port_input = port; server_addr.sin_port = htons(port); if (inet_pton(AF_INET, ip, &server_addr.sin_addr) <= 0) { throw runtime_error("Invalid IP address"); @@ -25,16 +25,18 @@ void Socket::connect_server(const char *ip, uint16_t port) { } void Socket::bind_server(const char *ip, uint16_t port) { - // The UDP socket is already created in the constructor - server_addr.sin_port = htons(port); - server_addr.sin_addr.s_addr = inet_addr(ip); - - if (bind(sock_server_rev, (const struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { - perror("[!] bind() failed"); - throw runtime_error("Failed to bind UDP socket"); - } - - printf("[+] Bound UDP socket on %s:%d\n", ip, port); + struct sockaddr_in bind_addr; + memset(&bind_addr, 0, sizeof(bind_addr)); + bind_addr.sin_family = AF_INET; + bind_addr.sin_port = htons(port); + bind_addr.sin_addr.s_addr = inet_addr(ip); + + if (bind(sock_server, (const struct sockaddr *)&bind_addr, sizeof(bind_addr)) < 0) { + perror("[!] bind() failed"); + throw runtime_error("Failed to bind UDP socket"); + } + + printf("[+] Bound UDP socket on %s:%d\n", ip, port); } void Socket::connect_unix(const char *ip, uint16_t port) { @@ -59,12 +61,12 @@ void Socket::send_server() { } ssize_t Socket::receive_server(void *buffer, size_t len) { - ssize_t recv_bytes = recv(sock_server_rev, buffer, len, 0); - if (recv_bytes < 0) { - perror("[!] recv() failed"); - return -1; - } - return recv_bytes; + ssize_t recv_bytes = recv(sock_server, buffer, len, 0); + if (recv_bytes < 0) { + perror("[!] recv() failed"); + return -1; + } + return recv_bytes; } void Socket::send_unix() { @@ -111,4 +113,3 @@ api_packet Socket::create_packet(uint8_t tracker_id) { api_packet Socket::get_packet() { return packet_data; } -