funzioni msgq
This commit is contained in:
parent
a0dd1587ad
commit
9c5ba65529
6
TODO.txt
6
TODO.txt
|
@ -5,4 +5,8 @@
|
|||
- al momomento i client non sanno ancora le dimensioni del campo (le hanno ricevute ma non settate)
|
||||
(in realta non so perche funzioni la checkwin al momento)
|
||||
|
||||
- sistemare se usare printfServer/Client
|
||||
- sistemare se usare printfServer/Client
|
||||
|
||||
- ho messo input del server globale, alcune funzioni non ne usufruiscono ancora (tip shm);
|
||||
|
||||
- printfServer mette \n all'inizio quindi non stampa lultima riga al momento
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#define MAX_NAME 16
|
||||
|
||||
int _MSGQID; //FIXME: static?
|
||||
int _MSGQID;
|
||||
|
||||
#define MSG 1
|
||||
#define MOVE 2
|
||||
|
@ -35,8 +35,7 @@ typedef struct {
|
|||
int winner; // -1 se draw
|
||||
} game_end_t;
|
||||
|
||||
void openMsgq();
|
||||
void sndId();
|
||||
void setupServerMsgq();
|
||||
|
||||
void rcvMsg(msg_t *msg);
|
||||
void rcvMove(move_t *move);
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
#define TIME_TO_RESET 2
|
||||
|
||||
void sigHandlerServer(int sig);
|
||||
void setServerSignalHandler();
|
||||
void setupServerSignalHandler();
|
||||
|
||||
#endif
|
|
@ -29,11 +29,12 @@ typedef enum {
|
|||
} tile_t;
|
||||
|
||||
int semid;
|
||||
int _MSGQID;
|
||||
int shmid;
|
||||
|
||||
tile_t *board;
|
||||
|
||||
pid_t pids[2];
|
||||
|
||||
input_server_t input;
|
||||
|
||||
#endif
|
|
@ -24,27 +24,18 @@ int main(int argc, char *argv[]){
|
|||
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
|
||||
|
||||
// CHECK_INPUT
|
||||
input_server_t input = check_input(argc, argv);
|
||||
input = check_input(argc, argv);
|
||||
|
||||
// SIGNAL
|
||||
printfServer("Setting up signals");
|
||||
setServerSignalHandler();
|
||||
setupServerSignalHandler();
|
||||
//
|
||||
|
||||
|
||||
// MSGQ
|
||||
printfServer("Setting up msgq");
|
||||
openMsgq();
|
||||
setupServerMsgq();
|
||||
|
||||
msg_t msg = { // FIXME: non riesco a metterli in una funzione :(
|
||||
.mtype = 1,
|
||||
.server_in = input,
|
||||
.player_id = 0
|
||||
};
|
||||
|
||||
sndMsg(&msg);
|
||||
msg.player_id = 1;
|
||||
sndMsg(&msg);
|
||||
//
|
||||
|
||||
// SHM
|
||||
|
@ -56,7 +47,6 @@ int main(int argc, char *argv[]){
|
|||
//
|
||||
|
||||
// SEM
|
||||
//
|
||||
printfServer("Setting up sem");
|
||||
key_t semKey = ftok(KEYFILE, 'S');
|
||||
semid = semget(semKey, 3, IPC_CREAT | S_IRUSR | S_IWUSR);
|
||||
|
|
|
@ -6,6 +6,16 @@
|
|||
#include <custom_msgq.h>
|
||||
#include <errExit.h>
|
||||
|
||||
void msgRcv(void *msgp, size_t size, long mtype);
|
||||
void msgSnd(void *msgp, size_t size);
|
||||
void openMsgq();
|
||||
void sndId();
|
||||
|
||||
void setupServerMsgq() {
|
||||
openMsgq();
|
||||
sndId();
|
||||
}
|
||||
|
||||
void openMsgq() {
|
||||
key_t msgKey = ftok(KEYFILE, 'M');
|
||||
_MSGQID = msgget(msgKey, IPC_CREAT | S_IRUSR | S_IWUSR);
|
||||
|
@ -14,6 +24,18 @@ void openMsgq() {
|
|||
}
|
||||
}
|
||||
|
||||
void sndId() {
|
||||
msg_t msg = {
|
||||
.mtype = 1,
|
||||
.server_in = input,
|
||||
.player_id = 0
|
||||
};
|
||||
|
||||
sndMsg(&msg);
|
||||
msg.player_id = 1;
|
||||
sndMsg(&msg);
|
||||
}
|
||||
|
||||
|
||||
void msgRcv(void *msgp, size_t size, long mtype) {
|
||||
int res;
|
||||
|
|
|
@ -99,7 +99,7 @@ void sigHandlerServer(int sig) {
|
|||
}
|
||||
}
|
||||
|
||||
void setServerSignalHandler() {
|
||||
void setupServerSignalHandler() {
|
||||
sigset_t mySet;
|
||||
sigfillset(&mySet);
|
||||
|
||||
|
|
Loading…
Reference in New Issue