-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmsgserv.c
44 lines (31 loc) · 1.5 KB
/
msgserv.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*****************************************************************************/
/* Projeto de RCI - Reliable Message Board */
/* Manuel Reis & Renato Henriques */
/*****************************************************************************/
#include "interface.h"
int main(int argc, char const *argv[])
{
/* id_server é o servidor de identidades */
struct sockaddr_in id_server;
socklen_t addrlen; // tamanho do servidor de identidades
struct msg_id msg_server; // onde guardamos os dados sobre o nosso servidor
int max_msg = -1; //nº máx de mensagens guardadas num servidos
int reg_int = -1; //intervalo entre registos
// gerar seeds random
struct timeval t1;
gettimeofday(&t1, NULL);
srand(t1.tv_usec * t1.tv_sec); // para ter uma diferente seed a cada inicio do programa
void (*old_handler)(int);
// utilizado para o programa ignorar erros do tipo SIGPIPE
if( (old_handler = signal(SIGPIPE, SIG_IGN)) == SIG_ERR) {
printf("Houve um conflito a ignorar os sinais SIGPIPEs\n");
exit(1);
}
// predefine o valor do ip e do porto do servidor de identidades com os valores default
setDefaultSettings( (struct sockaddr_in *) &id_server, &addrlen, &max_msg, ®_int);
// lê os argumentos que são recebidos no inicio do programa
read_args(argc, argv, &id_server, &msg_server, &max_msg, ®_int);
// corre a interface de utilizador
interface(&id_server, (struct msg_id *)&msg_server, reg_int, max_msg);
return 0;
}