fix: finnaly working!

This commit is contained in:
AfonsoCMSousa 2026-01-07 22:50:18 +00:00
parent ff07d6dcdf
commit c67c6d56f7
4 changed files with 32 additions and 8 deletions

Binary file not shown.

View File

@ -21,6 +21,10 @@ class Socket {
struct sockaddr_in server_addr;
struct sockaddr_un server_addr_unix;
// Server port for input (listening)
int server_port_input;
char buffer[1024];
// Socket Data
api_packet packet_data;
@ -28,15 +32,19 @@ class Socket {
Socket();
~Socket();
void connect_server(const char *ip, uint16_t port);
void connect_unix(const char *ip, uint16_t port);
void connect_server(const char *ip, uint16_t port, uint16_t port_input);
void send_server();
void send_unix();
void send_server(const api_packet &data);
void send_server(const void *data, size_t len);
void receive_server();
char *get_buffer() { return buffer; }
void connect_unix(const char *ip, uint16_t port);
void send_unix();
void send_unix(const api_packet &data);
void set_packet(const api_packet &data);
api_packet create_packet(uint8_t tracker_id);
api_packet create_packet(uint8_t tracker_id);
api_packet get_packet();
};

View File

@ -22,14 +22,22 @@ int main(int argc, char *argv[]) {
// Connect socket to API
sock.connect_unix(app.app_api_socket_path.c_str(), app.app_port_out);
// Connect socket to Server
sock.connect_server(app.app_server_out_ip.c_str(), app.app_port_out);
sock.connect_server(app.app_server_out_ip.c_str(), app.app_port_out, app.app_port_in);
// Right after connecting, send update rate request
char request[3] = {0};
char request[516] = {0};
request[0] = ACSP_REALTIMEPOS_INTERVAL;
request[1] = 127;
request[1] = 120;
sock.send_server(request, sizeof(request));
// Try and request session info
request[0] = ACSP_GET_SESSION_INFO;
sock.send_server(request, sizeof(request));
sock.receive_server();
char *buffer = sock.get_buffer();
printf("Received data from server: %s\n", buffer);
} catch (const runtime_error &e) {
cerr << "Error: " << e.what() << endl;

View File

@ -16,7 +16,8 @@ Socket::~Socket() {
close(sock_unix);
}
void Socket::connect_server(const char *ip, uint16_t port) {
void Socket::connect_server(const char *ip, uint16_t port, uint16_t port_input) {
this->server_port_input = port_input;
server_addr.sin_port = htons(port);
if (inet_pton(AF_INET, ip, &server_addr.sin_addr) <= 0) {
throw runtime_error("Invalid IP address");
@ -47,6 +48,13 @@ void Socket::send_server() {
}
}
void Socket::receive_server() {
ssize_t recv_bytes = recvfrom(sock_server, buffer, sizeof(buffer), 0, NULL, NULL);
if (recv_bytes < 0) {
throw runtime_error("Failed to receive data");
}
}
void Socket::send_unix() {
ssize_t sent_bytes = send(sock_unix, &packet_data, sizeof(packet_data), 0);
if (sent_bytes < 0) {