Feature: Now server ports and IP are parsed using args.

This commit is contained in:
Afonso Clerigo Mendes de Sousa 2025-10-22 03:16:10 +01:00
parent 95f5652c8d
commit 73ffb9d8d2
2 changed files with 23 additions and 16 deletions

Binary file not shown.

View File

@ -18,14 +18,10 @@
#define DEBUG_CAR_INFO 0
const int SERVER_OUT_PORT = 12000;
const int SERVER_IN_PORT = 11000;
const char *SERVER_OUT_IP = "127.0.0.1";
const char *API_SOCKET_PATH = "/tmp/ACplayer_socket";
const int MAX_PLAYERS = 64;
const int SERVER_ID = 130;
const int SERVER_ID = 137;
api_packet current_packet;
int apiSent = 0;
@ -127,10 +123,10 @@ void *send_to_api_socket(void *arg) {
continue;
}
if (apiSent) {
usleep(10000);
continue;
}
if (apiSent) {
usleep(10000);
continue;
}
ssize_t sent_bytes = send(sock_fd, &current_packet, sizeof(api_packet), MSG_NOSIGNAL);
if (sent_bytes < 0) {
@ -204,14 +200,26 @@ void init_carupdate(carAtributes *car) {
car->normalizedSplinePos = 0.0f;
}
int main(void) {
int main(int argc, char *argv[]) {
// Parse command-line arguments
if (argc != 4) {
fprintf(stderr, "Usage: %s <server_id> <in_port> <out_port>\n", argv[0]);
fprintf(stderr, "Example: %s 131 11001 12001\n", argv[0]);
return EXIT_FAILURE;
}
int SERVER_ID = atoi(argv[1]);
int SERVER_IN_PORT = atoi(argv[2]);
int SERVER_OUT_PORT = atoi(argv[3]);
printf("[+] Starting server...\n");
printf("[+] Server listening on port %d\n", SERVER_IN_PORT);
printf("[+] Server sending to %s:%d\n\n", SERVER_OUT_IP, SERVER_OUT_PORT);
current_packet.tracker_id = (u_int8_t)-1; // Mark as uninitialized
int send_sock_fd = connect_udp_socket(SERVER_OUT_IP, SERVER_IN_PORT); // SEND requests to Server
int send_sock_fd = connect_udp_socket(SERVER_OUT_IP, SERVER_IN_PORT); // SEND requests to Server
int recv_sock_fd = create_bound_udp_socket("0.0.0.0", SERVER_OUT_PORT); // LISTEN to server updates
if (send_sock_fd < 0 || recv_sock_fd < 0) {
@ -357,7 +365,7 @@ int main(void) {
update.isConnected = 1; // Mark as connected
update.isLoading = 1; // Mark as Loading
current_packet.connected_cars++;
current_packet.connected_cars++;
printf("\tDriver Name: \"%s\"\n", update.driver_name);
printf("\tDriver GUID: \"%s\"\n", update.driver_GUID);
@ -395,9 +403,8 @@ int main(void) {
break;
}
update.isConnected = 0; // Mark as disconnected
current_packet.connected_cars--;
current_packet.connected_cars--;
printf("\tDriver Name: \"%s\"\n", update.driver_name);
printf("\tDriver GUID: \"%s\"\n", update.driver_GUID);
@ -443,8 +450,8 @@ int main(void) {
players[update.carID].carGear = update.carGear;
players[update.carID].carRPM = update.carRPM;
players[update.carID].normalizedSplinePos = update.normalizedSplinePos;
players[update.carID].carID = update.carID;
players[update.carID].isConnected = 1; // Ensure isConnected is set
players[update.carID].carID = update.carID;
players[update.carID].isConnected = 1; // Ensure isConnected is set
}
update_api_packet(trackInfo, players, update.carID);