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");
|
||||
/* ENVIAR PEDIDO PARA "CP" DO SERVIDOR (write) */
|
||||
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;
|
||||
|
||||
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!!!*/
|
||||
if(access("CPservidor", F_OK)==0){
|
||||
printf("[SERVIDOR] Ja existe um servidor!\n");
|
||||
|
@ -76,7 +76,6 @@ int main(int argc, char *argv[]){
|
|||
close(fd_cliente);
|
||||
//fim resposta
|
||||
}
|
||||
|
||||
}else if(strcmp(clResp.cmd,"ping")==0){
|
||||
sprintf(msg2cl.resp,"[SV] Olá %s (%s)\n",getUsernameFromfifo(users,clResp.fifostr), 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);
|
||||
printf("[SERVER] Cliente removido!\n");
|
||||
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);
|
||||
|
|
10
util.h
10
util.h
|
@ -7,7 +7,7 @@
|
|||
#define TAM_OPTS 128
|
||||
#define TAM_RESP 512
|
||||
|
||||
typedef struct{
|
||||
typedef struct st_mensagem{
|
||||
int id;
|
||||
char titulo[TAM_TITULO];
|
||||
char corpo[TAM_CORPO];
|
||||
|
@ -18,14 +18,14 @@ typedef struct{
|
|||
struct mensagem * prox;
|
||||
}mensagem;
|
||||
|
||||
typedef struct{
|
||||
typedef struct st_topic{
|
||||
int id;
|
||||
char nome[TAM_NOME];
|
||||
struct mensagem * mensg;
|
||||
struct topic * prox;
|
||||
}topic;
|
||||
//guardar clientes
|
||||
typedef struct{
|
||||
typedef struct st_clients{
|
||||
int pid;
|
||||
char nome[TAM_NOME];
|
||||
char fifostr[TAM_NOME];
|
||||
|
@ -40,7 +40,7 @@ struct clmsg{
|
|||
char corpo[TAM_CORPO];
|
||||
int duracao;
|
||||
};
|
||||
typedef struct{
|
||||
typedef struct st_cl2sv{
|
||||
char fifostr[TAM_NOME];
|
||||
//base
|
||||
int pid;
|
||||
|
@ -52,7 +52,7 @@ typedef struct{
|
|||
}cl2sv;
|
||||
|
||||
//estructura de dados servidor --> cliente
|
||||
typedef struct{
|
||||
typedef struct st_sv2cl{
|
||||
int code;
|
||||
char type[TAM_CMD];
|
||||
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 i;
|
||||
for (i=0; i<maxw;i++)
|
||||
printf("w1 - %s || w2 - %s\n",word,wdef[i]);
|
||||
if (!strcmp(word,wdef[i]))
|
||||
return 1;
|
||||
return 0;
|
||||
|
@ -80,6 +81,7 @@ int main(int argc, char** argv) {
|
|||
justprinted = 0;
|
||||
}
|
||||
}
|
||||
printf("w - %s\n",word);
|
||||
if (!justprinted)
|
||||
printf("%d\n",numhits);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue