2026-01-07 23:12:50 +00:00

64 lines
1.9 KiB
C++

#include <cstddef>
#include <cstdint>
#include <iostream>
#include <stdexcept>
#include <string>
#include <vector>
#include "app.hpp" // for app_info struct
#include "file.hpp" // for parce_args
#include "net.hpp" // for socket operations
#include "server_structs.h"
using namespace std;
int main(int argc, char *argv[]) {
app_info app = parce_args(argc, argv);
api_packet packet;
Socket sock;
try {
// 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.bind_server("127.0.0.1", app.app_port_in);
// Right after connecting, send update rate request
char request[516] = {0};
request[0] = ACSP_REALTIMEPOS_INTERVAL;
request[1] = 120;
sock.send_server(request, sizeof(request));
cout << "[+] Connected to server!\n[!] Info: " << endl;
cout << " > API Socket Path: " << app.app_api_socket_path << endl;
cout << " > Server Out IP: " << app.app_server_out_ip << endl;
cout << " > App Port In: " << app.app_port_in << endl;
cout << " > App Port Out: " << app.app_port_out << endl;
} catch (const runtime_error &e) {
cerr << "Error: " << e.what() << endl;
return 1;
}
// TODO: Implement Cache
// TAG: Because sometimes the parser doesnt have the name of the server because it started after the server init
// we can cache it and reuse it to avoid NULL names in the DB
char buffer[2048];
sock.receive_server(buffer, sizeof(buffer));
cout << "[+] Received data from server!" << endl;
cout << "[+] Data (first 64 bytes): " << endl;
// printf buffer in hex
for (size_t i = 0; i < 64; i++) {
printf("%02X ", (unsigned char)buffer[i]);
}
printf("\n");
return 0;
}