joaobalaia 0 Posted June 13, 2019 Report Share Posted June 13, 2019 (edited) Boa tarde malta, estou com um pequeno problema que não sei bem como resolver. Tenho de fazer um protejo para uma cadeira e a parte do código já a consegui fazer, seguindo alguns passos que foi vendo na net e nas aulas. O meu problema é que agora para fazer o relatório final do protejo necessito de fazer a explicação das linhas de código, e como eu foi vendo na net não sei bem explicar o código em si, espero que alguém me consiga ajudar. Vou deixar aqui o código em baixo e vou ficar a aguardar respostas. //ficheiro: cliente.c #include <stdlib.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> int ler_socket(int cliente_socket){ //while(1){ int tamanho; if(read(cliente_socket, &tamanho, sizeof(tamanho)) == 0) return 0; char* mensagem = (char*) malloc(tamanho); read(cliente_socket, mensagem, tamanho); printf("cliente: resposta recebida do servidor--> %s\n", mensagem); if(!strcmp(mensagem, "quit")){ free(mensagem); return 1; } free(mensagem); //} } void escrever_socket(int socketfd, const char* mensagem){ int tamanho = strlen(mensagem) + 1; write(socketfd, &tamanho, sizeof(tamanho)); write(socketfd, mensagem, tamanho); } int main(int argc, char* argv[]){ const char* const nome_socket = argv[1]; //const char* const mensagem = argv[2]; int socket_fd; char mensagem[50]; //scanf("%s", &mensagem); while(1){ gets(mensagem); if(strcmp(mensagem, "start") == 0){ socket_fd = socket(PF_LOCAL, SOCK_STREAM, 0); struct sockaddr_un nome; nome.sun_family = AF_LOCAL; strcpy(nome.sun_path, nome_socket); connect(socket_fd, (struct sockaddr*) &nome, SUN_LEN(&nome)); gets(mensagem); while(1){ gets(mensagem); if(strcmp(mensagem, "ig") == 0){ socket_fd = socket(PF_LOCAL, SOCK_STREAM, 0); struct sockaddr_un nome; nome.sun_family = AF_LOCAL; strcpy(nome.sun_path, nome_socket); connect(socket_fd, (struct sockaddr*) &nome, SUN_LEN(&nome)); escrever_socket(socket_fd, "informatica de gestao"); } } while(strcmp(mensagem, "end") != 0){ escrever_socket(socket_fd, mensagem); ler_socket(socket_fd); gets(mensagem); } close(socket_fd); } } return 0; } Edited June 14, 2019 by M6 Formatação de código. Link to post Share on other sites
pwseo 234 Posted June 23, 2019 Report Share Posted June 23, 2019 @joaobalaia Se foste vendo o código pela net e aulas, então das duas uma: ou viste e tentaste compreender antes de incorporar no teu projecto, ou então simplesmente incorporaste no teu projecto sem tentares perceber como funciona (que é basicamente «copiar»). Se alguém vier agora explicar o código então chegamos a um ponto ridículo: tens um trabalho que era suposto ser feito por ti, mas cujo código foi escrito sem saberes exactamente como funciona, e cuja explicação de funcionamento foi feita por outra pessoa. O que te proponho é o seguinte: comenta devidamente o teu código como se estivesses a explicá-lo. Se tiveres alguma dúvida, voltas cá e colocas questões concretas. 1 Report Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now