Ir ao conteúdo
  • Cadastre-se

NandaFrança

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

posts postados por NandaFrança

  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

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!