Browse Source

meta 1

master
zmiguel.alves@gmail.com 2 years ago
parent
commit
6e4d86f37d
  1. BIN
      client
  2. 11
      client.c
  3. BIN
      server
  4. 19
      server.c
  5. 10
      util.h
  6. BIN
      verificador
  7. 2
      verificador.c

BIN
client

Binary file not shown.

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);
}
}

BIN
server

Binary file not shown.

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

@ -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];

BIN
verificador

Binary file not shown.

2
verificador.c

@ -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…
Cancel
Save