sqldjf
This commit is contained in:
parent
87bc2e65b3
commit
f1c9fa5746
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
#define MAX_NAME 16
|
#define MAX_NAME 16
|
||||||
|
|
||||||
|
#define MSGQKEY '9'
|
||||||
|
|
||||||
extern int _MSGQID;
|
extern int _MSGQID;
|
||||||
|
|
||||||
#define MSG 1
|
#define MSG 1
|
||||||
|
|
|
@ -7,9 +7,12 @@
|
||||||
#define CLIENT1 1
|
#define CLIENT1 1
|
||||||
#define SERVER 2
|
#define SERVER 2
|
||||||
|
|
||||||
|
#define SEMKEY 'P'
|
||||||
|
|
||||||
extern int _SEMID;
|
extern int _SEMID;
|
||||||
|
|
||||||
void setupServerSem();
|
void setupServerSem();
|
||||||
|
void setupClientSem();
|
||||||
|
|
||||||
int getSemid(key_t key, int size);
|
int getSemid(key_t key, int size);
|
||||||
void semOp(int semid, short sem_num, short sem_op);
|
void semOp(int semid, short sem_num, short sem_op);
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <structures.h>
|
#include <structures.h>
|
||||||
|
|
||||||
|
#define SHMKEY 'H'
|
||||||
|
|
||||||
extern int _SHMID;
|
extern int _SHMID;
|
||||||
|
|
||||||
void setupServerShm();
|
void setupServerShm();
|
||||||
|
|
|
@ -26,26 +26,16 @@ int main(int argc, char *argv[]){
|
||||||
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
|
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
|
||||||
|
|
||||||
msg_t msg;
|
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");
|
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
|
// aspetto che il server mi dia il permesso di collegarmi e segnalo collegamento al server
|
||||||
semOp(_SEMID, msg.player_id, -1);
|
semOp(_SEMID, msg.player_id, -1);
|
||||||
printf(PCLIENT "Connecting to server...\n");
|
printf(PCLIENT "Connecting to server...\n");
|
||||||
semOp(_SEMID, 2, 1);
|
semOp(_SEMID, 2, 1);
|
||||||
|
|
||||||
|
|
||||||
// mando i miei dati al server
|
// mando i miei dati al server
|
||||||
player_ds player = {.mtype = 3, .id = msg.player_id, .pid = getpid()};
|
player_ds player = {.mtype = 3, .id = msg.player_id, .pid = getpid()};
|
||||||
strcpy(player.name_player, argv[1]);
|
strcpy(player.name_player, argv[1]);
|
||||||
|
|
|
@ -27,9 +27,14 @@ void setupClient(int argc, char *argv[]) {
|
||||||
|
|
||||||
// MSGQ
|
// MSGQ
|
||||||
setupClientMsgq();
|
setupClientMsgq();
|
||||||
|
printf("msgq: %d\n", _MSGQID);
|
||||||
|
|
||||||
// SHM
|
// SHM
|
||||||
setupClientShm();
|
setupClientShm();
|
||||||
|
printf("shm: %d\n", _SHMID);
|
||||||
|
|
||||||
|
setupClientSem();
|
||||||
|
printf("sem: %d\n", _SEMID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void checkClientinput(int argc, char *argv[]){
|
void checkClientinput(int argc, char *argv[]){
|
||||||
|
|
|
@ -28,7 +28,7 @@ void setupClientMsgq() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void openMsgq() {
|
void openMsgq() {
|
||||||
key_t msgKey = ftok(KEYFILE, 'M');
|
key_t msgKey = ftok(KEYFILE, MSGQKEY);
|
||||||
_MSGQID = msgget(msgKey, IPC_CREAT | S_IRUSR | S_IWUSR);
|
_MSGQID = msgget(msgKey, IPC_CREAT | S_IRUSR | S_IWUSR);
|
||||||
if (_MSGQID == -1){
|
if (_MSGQID == -1){
|
||||||
errExitMsg("msgget");
|
errExitMsg("msgget");
|
||||||
|
|
|
@ -12,7 +12,7 @@ int _SEMID;
|
||||||
void resetServerSem(int semid);
|
void resetServerSem(int semid);
|
||||||
|
|
||||||
void setupServerSem() {
|
void setupServerSem() {
|
||||||
key_t semKey = ftok(KEYFILE, 'S');
|
key_t semKey = ftok(KEYFILE, SEMKEY);
|
||||||
_SEMID = semget(semKey, 3, IPC_CREAT | S_IRUSR | S_IWUSR);
|
_SEMID = semget(semKey, 3, IPC_CREAT | S_IRUSR | S_IWUSR);
|
||||||
if (_SEMID == -1) {
|
if (_SEMID == -1) {
|
||||||
errExit("getsem", "F4Server");
|
errExit("getsem", "F4Server");
|
||||||
|
@ -21,6 +21,15 @@ void setupServerSem() {
|
||||||
resetServerSem(_SEMID);
|
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) {
|
void semOp(int semid, short sem_num, short sem_op) {
|
||||||
struct sembuf sop = {.sem_num = sem_num, .sem_op = sem_op, .sem_flg = 0};
|
struct sembuf sop = {.sem_num = sem_num, .sem_op = sem_op, .sem_flg = 0};
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ void setupClientShm() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int getShmid() {
|
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) {
|
if (shmid == -1) {
|
||||||
errExit("shmget", "getShmid");
|
errExit("shmget", "getShmid");
|
||||||
}
|
}
|
||||||
|
|
11
src/server.c
11
src/server.c
|
@ -26,21 +26,24 @@ void setupServer(int argc, char *argv[]){
|
||||||
_ROWS = _INPUT_S.rows;
|
_ROWS = _INPUT_S.rows;
|
||||||
_COLLUMS = _INPUT_S.collums;
|
_COLLUMS = _INPUT_S.collums;
|
||||||
|
|
||||||
// MSGQ
|
|
||||||
printf(PSERVER "Setting up msgq\n"); // FIXME: mettere printf nelle funzioni
|
|
||||||
setupServerMsgq();
|
|
||||||
|
|
||||||
// SIGNAL
|
// SIGNAL
|
||||||
printf(PSERVER "Setting up signals\n");
|
printf(PSERVER "Setting up signals\n");
|
||||||
setupServerSignalHandler();
|
setupServerSignalHandler();
|
||||||
|
|
||||||
|
// MSGQ
|
||||||
|
printf(PSERVER "Setting up msgq\n"); // FIXME: mettere printf nelle funzioni
|
||||||
|
setupServerMsgq();
|
||||||
|
printf("msgq: %d\n", _MSGQID);
|
||||||
|
|
||||||
// SEM
|
// SEM
|
||||||
printf(PSERVER "Setting up sem\n");
|
printf(PSERVER "Setting up sem\n");
|
||||||
setupServerSem();
|
setupServerSem();
|
||||||
|
printf("sem: %d\n", _SEMID);
|
||||||
|
|
||||||
// SHM
|
// SHM
|
||||||
printf(PSERVER "Setting up shm\n");
|
printf(PSERVER "Setting up shm\n");
|
||||||
setupServerShm();
|
setupServerShm();
|
||||||
|
printf("shm: %d\n", _SHMID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue