Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2013, 13:37
Fernando_net
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 1 mes
Puntos: 3
Pregunta Socket servidor que no responde al cliente

Que tal amigos.

Llevo un día entero (desde esta mañana) a ver si encuentro donde está el problema.

Estoy liado creando un servidor en c (y bajo windows) para recibir las peticiones. He mirado tutoriales sobre creación de sockets (tanto cliente como servidor) pero todos eran bajo linux. En mi caso (lo dicho, en Windows) estoy utilizando las librerias winsock2.h y ws2tcpip.h para el tema de las conexiones entre cliente/servidor.

De momento me conecta todo perfecto y se pasan datos sin problemas. El caso es que quiero que el servidor sea un poco personalizado, como si de una persona se tratara, que al leer según que palabras pues te responda con mensajes automáticos.

Por ejemplo, si le digo "Adios", que me responda "Que vaya bien". Si le digo "Como estas", que me responda "bien gracias". Cosas así...

Estoy haciendo if...else... pero nada, no me hace caso. Yo desde el terminal "cliente" le envio "Adios" y nada, no me responde nada.

El código es el siguiente.

Cliente:

Código C:
Ver original
  1. h = gethostbyname(argv[1]);
  2.    printf("Escribe el mensaje:\n",inet_ntoa(*(struct in_addr *)h->h_addr_list[0]));
  3.    address_ser.sin_family = h->h_addrtype;
  4.    memcpy((char *) &direccion_servidor.sin_addr.s_addr, h->h_addr_list[0], h->h_length);
  5.    direccion_servidor.sin_port = htons(6001);
  6.  
  7.  
  8.    result = connect(socket_cliente, (struct sockaddr *) &direccion_servidor, sizeof(direccion_servidor));
  9.    if (result<0) {
  10.       printf("Error: imposible conectar con el servidor\n");
  11.       exit(-1);
  12.    }
  13.  
  14.    strcpy(mensaje,"");
  15.    gets(mensaje);
  16.    result = send(socket_cliente, mensaje, strlen(mensaje)+1, 0);
  17.    if (result<0) {
  18.       printf("Error: no se ha podido enviar el mensaje\n");
  19.       exit(-1);
  20.    }

Y este es el servidor, el que quiero que responda:

Código C:
Ver original
  1. memset(mensaje,0x0,BUFFER);
  2. result = recv(socket_servidor, mensaje, BUFFER, 0);
  3. if (result<0) {
  4.    printf("error\n");
  5.    exit(-1);
  6. }
  7. else
  8. {
  9.    if (mensaje=="Adios"){
  10.               printf("Que vaya bien\n");
  11.    }
  12.    else
  13.    if (mensaje=="Como estas"){
  14.               printf("Bien gracias\n");
  15.    }
  16. }