Ir ao conteúdo
  • Cadastre-se

NandaFrança

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

0
  1. Boa tarde, preciso fazer um servidor enviar uma resposta automática a um cliente em C. Porém não faço ideia de como realizar isso. Ex: Cliente digita: Olá Servidor responde: Olá tudo bem? Já tentei utilizando if e switch, porém sem sucesso! Alguem poderia me ajudar? Segue código que estou utilizando no cliente e no servidor: Servidor: #include "retornadata.h" // biclioteca para a data, colocar o arquivo na mesma pasta #include <stdio.h> #include <conio.h> #include <winsock.h> #include <windows.h> //Repara que utilzaremos este header para utilizarmos a função Sleep(); #include <string.h> WSADATA Data; SOCKET winsock; SOCKADDR_IN sock; char buffer[1024]; char buffer2[1024]; int bytes; int main() { char data_sistema[100]; sprintf(data_sistema,"%s",data()); printf("%s\n",data_sistema); if(WSAStartup(MAKEWORD(1,1),&Data)==SOCKET_ERROR) { printf("Erro ao inicializar o winsock"); return 0; } if((winsock = socket(AF_INET,SOCK_STREAM,0))==SOCKET_ERROR) { printf("Erro ao criar socket"); return 0; } sock.sin_family=AF_INET; sock.sin_port=htons(2530); if(bind(winsock,(SOCKADDR*)&sock,sizeof(sock))==SOCKET_ERROR) { printf("Erro colocar utilizar a funcao BIND"); return 0; } listen(winsock,1); while((winsock = accept(winsock,0,0))==SOCKET_ERROR) { Sleep(1); } printf("Cliente conectado!\n"); while(1) { Sleep(1); memset(buffer2,0,1024); bytes=recv(winsock,buffer2,1024,0); if(bytes==-1) { printf("Conexão perdida"); getch(); return 0; } printf(buffer2); printf("Digite uma mensagem:\n"); printf("2||%s|",data_sistema); gets(buffer); strcat(buffer,"\r\n"); send(winsock,buffer,strlen(buffer),0); } getch(); closesocket(winsock); WSACleanup(); return 0; } ----------------------------------------------------------------------------------------------------------------------------------------------- Cliente: #include "retornadata.h" // biclioteca para a data, colocar o arquivo na mesma pasta #include <stdio.h> #include <winsock.h> #include <conio.h> #include <windows.h> #include <string.h> WSADATA Data; SOCKET winsock; SOCKADDR_IN sock; char buffer[1024]; char buffer2[1024]; int bytes; int main() { char data_sistema[100]; sprintf(data_sistema,"%s",data()); printf("%s\n",data_sistema); if(WSAStartup(MAKEWORD(1,1),&Data)==SOCKET_ERROR) { printf("Erro ao inicializar o winsock"); return 0; } if((winsock = socket(AF_INET,SOCK_STREAM,0))==SOCKET_ERROR) { printf("Erro ao criar socket"); return 0; } sock.sin_family=AF_INET; sock.sin_port=htons(2530); sock.sin_addr.s_addr=inet_addr("127.0.0.1"); if(connect(winsock,(SOCKADDR*)&sock,sizeof(sock))==SOCKET_ERROR) { printf("Erro ao se conectar"); return 0; } printf("Conectado!\n"); while(1) { Sleep(1); printf("Digite uma mensagem:\n"); printf("1||%s|",data_sistema); gets(buffer); strcat(buffer,"\r\n"); send(winsock,buffer,strlen(buffer),0); memset(buffer2,0,1024); bytes=recv(winsock,buffer2,1024,0); if(bytes==-1) { printf("Conexão perdida"); getch(); return 0; } printf(buffer2); } getch(); closesocket(winsock); WSACleanup(); return 0; } socket.zip
  2. Tente pausar o anti-vírus quando for executar ^^

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...