funziona finalmente

This commit is contained in:
Lorenzo Bianchi 2023-05-29 16:14:01 +02:00
parent f1c9fa5746
commit a7a5582087
5 changed files with 15 additions and 12 deletions

View File

@ -80,6 +80,6 @@ test: comp
comp: server_c client_c
server_c:
gcc src/F4Server.c src/custom_sem.c src/custom_shm.c src/custom_sig.c src/custom_msgq.c src/errExit.c src/forza4.c src/server.c -o bin/F4Server -I inc/
gcc src/F4Server.c src/custom_sem.c src/custom_shm.c src/custom_sig.c src/custom_msgq.c src/errExit.c src/forza4.c src/client.c src/server.c -o bin/F4Server -I inc/
client_c:
gcc src/F4Client.c src/custom_sem.c src/custom_shm.c src/custom_sig.c src/custom_msgq.c src/errExit.c src/forza4.c src/client.c src/server.c -o bin/F4Client -I inc/

View File

@ -1,8 +1,7 @@
#ifndef CLIENT_H
#define CLIENT_H
msg_t msg;
extern int ID;
void setupClient(int argc, char *argv[]);

View File

@ -25,25 +25,24 @@ int main(int argc, char *argv[]){
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
msg_t msg;
setupClient(argc, argv);
printf("fin qua funzia (spero) %d\n", _SEMID);
scanf("%d");
// aspetto che il server mi dia il permesso di collegarmi e segnalo collegamento al server
semOp(_SEMID, msg.player_id, -1);
printf("fin qua funzia (spero) %d\n", ID);
scanf("%d");
semOp(_SEMID, ID, -1);
printf(PCLIENT "Connecting to server...\n");
semOp(_SEMID, 2, 1);
// mando i miei dati al server
player_ds player = {.mtype = 3, .id = msg.player_id, .pid = getpid()};
player_ds player = {.mtype = 3, .id = ID, .pid = getpid()};
strcpy(player.name_player, argv[1]);
sndPlayer(&player);
printf(PCLIENT "Searching for oponent...\n");
semOp(_SEMID, msg.player_id, -1);
semOp(_SEMID, ID, -1);
printf(PCLIENT "Opponent found\n");
@ -54,7 +53,7 @@ int main(int argc, char *argv[]){
while (1) {
// aspetto il mio turno
semOp(_SEMID, msg.player_id, -1); // mettere id eccetera in var
semOp(_SEMID, ID, -1); // mettere id eccetera in var
printBoard(_BOARD);
// input e controllo
@ -69,7 +68,7 @@ int main(int argc, char *argv[]){
// mando mossa al server
sndMove(&move);
semOp(_SEMID, msg.player_id, -1);
semOp(_SEMID, ID, -1);
printBoard(_BOARD);
printf(PCLIENT "Waiting for oponent\n"); //FIXME: solo se la partita non è finita

View File

@ -16,6 +16,8 @@
#include <custom_sig.h>
#include <forza4.h>
int ID;
void checkClientinput(int argc, char *argv[]);
void setupClient(int argc, char *argv[]) {

View File

@ -49,11 +49,14 @@ void sndId() {
void rcvId() {
printf(PCLIENT "Waiting for message...\n");
msg_t msg;
rcvMsg(&msg);
setRows(msg.server_in.rows);
setCollums(msg.server_in.collums);
setTokens(msg.server_in.player1Token, msg.server_in.player2Token);
ID = msg.player_id;
}