Bresolin Postado Maio 25, 2008 Denunciar Share Postado Maio 25, 2008 Boa tarde, tenho o seguinte código:/* * tcp-servidor.c */#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>/* * Server Main. */main(int argc, char* argv[]){ unsigned short port; /* porta usada pelo servidor */ char buf[81]; /* buffer para receber dados */ struct sockaddr_in client; /* informacao do endereco do cliente */ struct sockaddr_in server; /* informacao do endereco do servidor */ int s; /* socket para aceitar conexoes */ int ns; /* socket conectado ao cliente */ int namelen; /* tamanho do nome do cliente */ char retorno[81] = " Retorno ok"; char palavra1[81]; char palavra2[81]; /* * Verifica os argumentos. So deve haver um: o numero da porta a ser usada. */ if (argc != 2) { fprintf(stderr, "Parametro(s) invalido(s) - uso correto:\n%s <numero_da_porta>\n", argv[0]); exit(1); } /* * Converte O argumento de ASCII para short. */ port = (unsigned short) atoi(argv[1]); /* * Cria um socket para aceitar conexoes. */ if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("Socket()"); exit(2); } /* * Liga o socket ao endereco do servidor. */ server.sin_family = AF_INET; server.sin_port = htons(port); server.sin_addr.s_addr = INADDR_ANY; if (bind(s, (struct sockaddr *)&server, sizeof(server)) < 0) { perror("Bind()"); exit(3); } /* * Espera por conexoes. */ if (listen(s, 1) != 0) { perror("Listen()"); exit(4); } /* * Aceita uma conexao. */ namelen = sizeof(client); if ((ns = accept(s, (struct sockaddr *)&client, ( socklen_t *)&namelen)) == -1) { perror("Accept()"); exit(5); } /* * Recebe a mensagem em um novo socket. */ if (recv(ns, buf, sizeof(buf), 0) == -1) { perror("Recv()"); exit(6); } /* * Imprime a mensagem. */ printf("\n\nMensagem: %s\n", buf); /* * Faz a inversão das palavras */ strcpy(palavra2, strtok(buf, " ")); strcpy(palavra1, strtok(NULL, " ")); /* * Junta as palavras na nova ordem. */ retorno = strcat(palavra2, " "); retorno = strcat(retorno, palavra1); /* * Retorna ao cliente o resultado da conta. */ if (send(ns, retorno, sizeof(retorno), 0) < 0) { perror("Send()"); exit(5); } /* * Fecha os sockets. */ close(ns); close(s);}quando mando compilar, retorna o seguinte erro:$ gcc tcp-servidor-5.c -o server -lgdbmtcp-servidor-5.c: In function ‘main’:tcp-servidor-5.c:108: error: incompatible types in assignmenttcp-servidor-5.c:109: error: incompatible types in assignmentO erro seria aqui: /* * Junta as palavras na nova ordem. */ retorno = strcat(palavra2, " "); retorno = strcat(retorno, palavra1);alguém pode me dizer o q devo fazer?Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bresolin
Boa tarde, tenho o seguinte código:
quando mando compilar, retorna o seguinte erro:
O erro seria aqui:alguém pode me dizer o q devo fazer?
Obrigado
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.