This commit is contained in:
Lorenzo Bianchi 2023-05-16 14:55:12 +02:00
parent d4a77602ee
commit 9434d66546
2 changed files with 23 additions and 7 deletions

View File

@ -9,9 +9,9 @@
//TODO: mettere main ma non l'ho fatto per makefile
int client(){
int semid = getSemid(ftok(KEYFILE, 'k'), 2);
int semid = getSemid(ftok(KEYFILE, 'S'), 2);
// TODO: al client servono le dimensioni prima di connettersi
// int shmBoardid = getShmid(input.rows, input.collums);
// tile_t *board = shmClientAt(shmBoardid);

View File

@ -1,6 +1,7 @@
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/stat.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
@ -20,22 +21,37 @@ void sigHandler(int sig) {
int main(int argc, char *argv[]){
input_server_t input = check_input(argc, argv);
// SHM
int shmBoardid = getShmid(input.rows, input.collums);
tile_t *board = shmServerAt(shmBoardid);
//
// si potrebbe mettere in server.c
int semid = getSemid(ftok(KEYFILE, 'k'), 2);
// SEM
key_t semKey = ftok(KEYFILE, 'S');
int semid = getSemid(semKey, 2);
//
// SIGNAL
sigset_t mySet;
sigfillset(&mySet);
sigdelset(&mySet, SIGINT);
sigprocmask(SIG_SETMASK, &mySet, NULL);
if (signal(SIGINT, sigHandler) == SIG_ERR)
errExitMsg("signal");
errExit("signal", "f4Server");
resetServerSem(semid);
//
// MSGQ
key_t msgKey = ftok(KEYFILE, 'M');
int msqid = msgget(msgKey, IPC_CREAT | S_IRUSR | S_IWUSR);
if (msqid == -1)
errExit("msgq", "F4Server");
//
semOp(semid, 0, 2); // aperurta semaforo per connessione dei due client
semOp(semid, 0, 0); // aspetto che si connettano i due client