From f1c9fa57469a07007f1c6f5b761fecf3573b31ea Mon Sep 17 00:00:00 2001 From: Lorenzo Bianchi Date: Mon, 29 May 2023 15:01:11 +0200 Subject: [PATCH] sqldjf --- inc/custom_msgq.h | 2 ++ inc/custom_sem.h | 3 +++ inc/custom_shm.h | 2 ++ src/F4Client.c | 14 ++------------ src/client.c | 5 +++++ src/custom_msgq.c | 2 +- src/custom_sem.c | 11 ++++++++++- src/custom_shm.c | 2 +- src/server.c | 11 +++++++---- 9 files changed, 33 insertions(+), 19 deletions(-) diff --git a/inc/custom_msgq.h b/inc/custom_msgq.h index 761371d..655e1d4 100644 --- a/inc/custom_msgq.h +++ b/inc/custom_msgq.h @@ -6,6 +6,8 @@ #define MAX_NAME 16 +#define MSGQKEY '9' + extern int _MSGQID; #define MSG 1 diff --git a/inc/custom_sem.h b/inc/custom_sem.h index eb60d06..46449c5 100644 --- a/inc/custom_sem.h +++ b/inc/custom_sem.h @@ -7,9 +7,12 @@ #define CLIENT1 1 #define SERVER 2 +#define SEMKEY 'P' + extern int _SEMID; void setupServerSem(); +void setupClientSem(); int getSemid(key_t key, int size); void semOp(int semid, short sem_num, short sem_op); diff --git a/inc/custom_shm.h b/inc/custom_shm.h index 37ded0e..0a7d5a2 100644 --- a/inc/custom_shm.h +++ b/inc/custom_shm.h @@ -3,6 +3,8 @@ #include +#define SHMKEY 'H' + extern int _SHMID; void setupServerShm(); diff --git a/src/F4Client.c b/src/F4Client.c index 1a6c0b3..32e70de 100644 --- a/src/F4Client.c +++ b/src/F4Client.c @@ -26,26 +26,16 @@ int main(int argc, char *argv[]){ printf("Il mio pid per killarmi: %d\n", getpid()); //TMP msg_t msg; - setupClient(argc, argv); //FIXME: msg é tmp + setupClient(argc, argv); - printf("fin qua funzia (spero)\n"); + printf("fin qua funzia (spero) %d\n", _SEMID); scanf("%d"); - // SEM - printf(PCLIENT "Setting up sem\n"); - key_t semKey = ftok(KEYFILE, 'S'); - if ((_SEMID = semget(semKey, 3, S_IRUSR | S_IWUSR | IPC_CREAT)) == -1) { - errExit("getsem", "F4Client"); - } - // - - // aspetto che il server mi dia il permesso di collegarmi e segnalo collegamento al server semOp(_SEMID, msg.player_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()}; strcpy(player.name_player, argv[1]); diff --git a/src/client.c b/src/client.c index 9b86a95..5c959c4 100644 --- a/src/client.c +++ b/src/client.c @@ -27,9 +27,14 @@ void setupClient(int argc, char *argv[]) { // MSGQ setupClientMsgq(); + printf("msgq: %d\n", _MSGQID); // SHM setupClientShm(); + printf("shm: %d\n", _SHMID); + + setupClientSem(); + printf("sem: %d\n", _SEMID); } void checkClientinput(int argc, char *argv[]){ diff --git a/src/custom_msgq.c b/src/custom_msgq.c index 135f935..afbea7e 100644 --- a/src/custom_msgq.c +++ b/src/custom_msgq.c @@ -28,7 +28,7 @@ void setupClientMsgq() { } void openMsgq() { - key_t msgKey = ftok(KEYFILE, 'M'); + key_t msgKey = ftok(KEYFILE, MSGQKEY); _MSGQID = msgget(msgKey, IPC_CREAT | S_IRUSR | S_IWUSR); if (_MSGQID == -1){ errExitMsg("msgget"); diff --git a/src/custom_sem.c b/src/custom_sem.c index bf9780a..7d80139 100644 --- a/src/custom_sem.c +++ b/src/custom_sem.c @@ -12,7 +12,7 @@ int _SEMID; void resetServerSem(int semid); void setupServerSem() { - key_t semKey = ftok(KEYFILE, 'S'); + key_t semKey = ftok(KEYFILE, SEMKEY); _SEMID = semget(semKey, 3, IPC_CREAT | S_IRUSR | S_IWUSR); if (_SEMID == -1) { errExit("getsem", "F4Server"); @@ -21,6 +21,15 @@ void setupServerSem() { resetServerSem(_SEMID); } + +void setupClientSem() { + key_t semKey = ftok(KEYFILE, SEMKEY); + _SEMID = semget(semKey, 3, IPC_CREAT | S_IRUSR | S_IWUSR); + if (_SEMID == -1) { + errExit("getsem", "F4Client"); + } +} + void semOp(int semid, short sem_num, short sem_op) { struct sembuf sop = {.sem_num = sem_num, .sem_op = sem_op, .sem_flg = 0}; diff --git a/src/custom_shm.c b/src/custom_shm.c index 4e6b4bd..50178a6 100644 --- a/src/custom_shm.c +++ b/src/custom_shm.c @@ -27,7 +27,7 @@ void setupClientShm() { } int getShmid() { - int shmid = shmget(ftok(KEYFILE, 'h'), _ROWS * _COLLUMS * sizeof(tile_t), IPC_CREAT | S_IRUSR | S_IWUSR); + int shmid = shmget(ftok(KEYFILE, SHMKEY), _ROWS * _COLLUMS * sizeof(tile_t), IPC_CREAT | S_IRUSR | S_IWUSR); if (shmid == -1) { errExit("shmget", "getShmid"); } diff --git a/src/server.c b/src/server.c index 5d8c02d..c229b32 100644 --- a/src/server.c +++ b/src/server.c @@ -26,21 +26,24 @@ void setupServer(int argc, char *argv[]){ _ROWS = _INPUT_S.rows; _COLLUMS = _INPUT_S.collums; - // MSGQ - printf(PSERVER "Setting up msgq\n"); // FIXME: mettere printf nelle funzioni - setupServerMsgq(); - // SIGNAL printf(PSERVER "Setting up signals\n"); setupServerSignalHandler(); + + // MSGQ + printf(PSERVER "Setting up msgq\n"); // FIXME: mettere printf nelle funzioni + setupServerMsgq(); + printf("msgq: %d\n", _MSGQID); // SEM printf(PSERVER "Setting up sem\n"); setupServerSem(); + printf("sem: %d\n", _SEMID); // SHM printf(PSERVER "Setting up shm\n"); setupServerShm(); + printf("shm: %d\n", _SHMID); }