meta 1
This commit is contained in:
parent
1b67269c36
commit
6e4d86f37d
11
client.c
11
client.c
|
@ -109,6 +109,17 @@ int main(int argc, char *argv[]){
|
||||||
strcpy(msg2sv.cmd, "list");
|
strcpy(msg2sv.cmd, "list");
|
||||||
/* ENVIAR PEDIDO PARA "CP" DO SERVIDOR (write) */
|
/* ENVIAR PEDIDO PARA "CP" DO SERVIDOR (write) */
|
||||||
i = write(fd_servidor, &msg2sv, sizeof(msg2sv));
|
i = write(fd_servidor, &msg2sv, sizeof(msg2sv));
|
||||||
|
}else if(strcmp(palavra[0],"verifica")==0){
|
||||||
|
strcpy(msg2sv.cmd, "verifica");
|
||||||
|
strcpy(msg2sv.opts,palavra[1]);
|
||||||
|
/* ENVIAR PEDIDO PARA "CP" DO SERVIDOR (write) */
|
||||||
|
i = write(fd_servidor, &msg2sv, sizeof(msg2sv));
|
||||||
|
//ler resposta do servidor
|
||||||
|
/*fd_cliente = open(msg2sv.fifostr,O_RDONLY);
|
||||||
|
read(fd_cliente,&svResp,sizeof(svResp));
|
||||||
|
close(fd_cliente);*/
|
||||||
|
//processar resposta
|
||||||
|
//printf(svResp.resp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
19
server.c
19
server.c
|
@ -27,7 +27,7 @@ int main(int argc, char *argv[]){
|
||||||
int userCounter = 0;
|
int userCounter = 0;
|
||||||
|
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
int fd_servidor, fd_cliente;
|
int fd_servidor, fd_cliente, fd_child[2];
|
||||||
/* VERIFICAR SE EXISTE "CP" DO SERVIDOR (access) -- APENAS UM!!!*/
|
/* VERIFICAR SE EXISTE "CP" DO SERVIDOR (access) -- APENAS UM!!!*/
|
||||||
if(access("CPservidor", F_OK)==0){
|
if(access("CPservidor", F_OK)==0){
|
||||||
printf("[SERVIDOR] Ja existe um servidor!\n");
|
printf("[SERVIDOR] Ja existe um servidor!\n");
|
||||||
|
@ -76,7 +76,6 @@ int main(int argc, char *argv[]){
|
||||||
close(fd_cliente);
|
close(fd_cliente);
|
||||||
//fim resposta
|
//fim resposta
|
||||||
}
|
}
|
||||||
|
|
||||||
}else if(strcmp(clResp.cmd,"ping")==0){
|
}else if(strcmp(clResp.cmd,"ping")==0){
|
||||||
sprintf(msg2cl.resp,"[SV] Olá %s (%s)\n",getUsernameFromfifo(users,clResp.fifostr), clResp.fifostr);
|
sprintf(msg2cl.resp,"[SV] Olá %s (%s)\n",getUsernameFromfifo(users,clResp.fifostr), clResp.fifostr);
|
||||||
printf("[SERVER] A responder ao Cliente %s",clResp.fifostr);
|
printf("[SERVER] A responder ao Cliente %s",clResp.fifostr);
|
||||||
|
@ -93,6 +92,22 @@ int main(int argc, char *argv[]){
|
||||||
users=removeUser(users,clResp.fifostr,&userCounter);
|
users=removeUser(users,clResp.fifostr,&userCounter);
|
||||||
printf("[SERVER] Cliente removido!\n");
|
printf("[SERVER] Cliente removido!\n");
|
||||||
uinit = users;
|
uinit = users;
|
||||||
|
}else if(strcmp(clResp.cmd,"verifica")==0){
|
||||||
|
printf("[SERVER] A verificar '%s'\n",clResp.opts);
|
||||||
|
pipe(fd_child);
|
||||||
|
switch(fork()){
|
||||||
|
case 0://child
|
||||||
|
close(fd_child[1]);
|
||||||
|
dup2(fd_child[0], STDIN_FILENO);
|
||||||
|
close(fd_child[0]);
|
||||||
|
execl("verificador", "./verificador", "words.txt", NULL);
|
||||||
|
default://me
|
||||||
|
close(fd_child[0]);
|
||||||
|
write(fd_child[1], clResp.opts, sizeof(clResp.opts));
|
||||||
|
close(fd_child[1]);
|
||||||
|
wait(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}while(sair==0);
|
}while(sair==0);
|
||||||
|
|
10
util.h
10
util.h
|
@ -7,7 +7,7 @@
|
||||||
#define TAM_OPTS 128
|
#define TAM_OPTS 128
|
||||||
#define TAM_RESP 512
|
#define TAM_RESP 512
|
||||||
|
|
||||||
typedef struct{
|
typedef struct st_mensagem{
|
||||||
int id;
|
int id;
|
||||||
char titulo[TAM_TITULO];
|
char titulo[TAM_TITULO];
|
||||||
char corpo[TAM_CORPO];
|
char corpo[TAM_CORPO];
|
||||||
|
@ -18,14 +18,14 @@ typedef struct{
|
||||||
struct mensagem * prox;
|
struct mensagem * prox;
|
||||||
}mensagem;
|
}mensagem;
|
||||||
|
|
||||||
typedef struct{
|
typedef struct st_topic{
|
||||||
int id;
|
int id;
|
||||||
char nome[TAM_NOME];
|
char nome[TAM_NOME];
|
||||||
struct mensagem * mensg;
|
struct mensagem * mensg;
|
||||||
struct topic * prox;
|
struct topic * prox;
|
||||||
}topic;
|
}topic;
|
||||||
//guardar clientes
|
//guardar clientes
|
||||||
typedef struct{
|
typedef struct st_clients{
|
||||||
int pid;
|
int pid;
|
||||||
char nome[TAM_NOME];
|
char nome[TAM_NOME];
|
||||||
char fifostr[TAM_NOME];
|
char fifostr[TAM_NOME];
|
||||||
|
@ -40,7 +40,7 @@ struct clmsg{
|
||||||
char corpo[TAM_CORPO];
|
char corpo[TAM_CORPO];
|
||||||
int duracao;
|
int duracao;
|
||||||
};
|
};
|
||||||
typedef struct{
|
typedef struct st_cl2sv{
|
||||||
char fifostr[TAM_NOME];
|
char fifostr[TAM_NOME];
|
||||||
//base
|
//base
|
||||||
int pid;
|
int pid;
|
||||||
|
@ -52,7 +52,7 @@ typedef struct{
|
||||||
}cl2sv;
|
}cl2sv;
|
||||||
|
|
||||||
//estructura de dados servidor --> cliente
|
//estructura de dados servidor --> cliente
|
||||||
typedef struct{
|
typedef struct st_sv2cl{
|
||||||
int code;
|
int code;
|
||||||
char type[TAM_CMD];
|
char type[TAM_CMD];
|
||||||
char resp[TAM_RESP];
|
char resp[TAM_RESP];
|
||||||
|
|
Binary file not shown.
|
@ -34,6 +34,7 @@ int readWordFile(FILE * f, char wdef[][MAXWL], int maxw) {
|
||||||
int checkWord(char * word, char wdef[][MAXWL], int maxw) {
|
int checkWord(char * word, char wdef[][MAXWL], int maxw) {
|
||||||
int i;
|
int i;
|
||||||
for (i=0; i<maxw;i++)
|
for (i=0; i<maxw;i++)
|
||||||
|
printf("w1 - %s || w2 - %s\n",word,wdef[i]);
|
||||||
if (!strcmp(word,wdef[i]))
|
if (!strcmp(word,wdef[i]))
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -80,6 +81,7 @@ int main(int argc, char** argv) {
|
||||||
justprinted = 0;
|
justprinted = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
printf("w - %s\n",word);
|
||||||
if (!justprinted)
|
if (!justprinted)
|
||||||
printf("%d\n",numhits);
|
printf("%d\n",numhits);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue