generated from AfonsoCMSousa/CPP-Template
fix: finnaly working!
This commit is contained in:
parent
ff07d6dcdf
commit
c67c6d56f7
BIN
PlayerTracker
BIN
PlayerTracker
Binary file not shown.
@ -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();
|
||||
};
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user