Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/11/2013, 15:16
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Socket servidor que no responde al cliente

No puedes comparar directamente las cadenas de texto, usa strcmp:

Código C:
Ver original
  1. if(!strcmp(mensaje, "Adios")) {
  2.     //ha recibido 'Adios'
  3. }
  4. else {
  5.     //etc...
  6. }

Esto es suponiendo que recibes el mensaje correctamente. En cualquier caso te comento otra cosa: el socket servidor es el que abres para escuchar, y el socket cliente es el retorno de la funcion accept, y es sobre ese socket cliente donde haces las operaciones de recv y send; en tu codigo recibes datos de un socket llamado socket_servidor que para que funcione tiene que ser el retorno de la funcion accept, es decir el socket cliente o dicho de otra forma has nombrado socket_servidor al socket cliente. Por contra, si has nombrado bien las variables y socket_servidor es el que escucha entonces esto no puede funcionar nunca.

En casos como este donde es facil confundir cosas y obtener errores lo principal es (junto con indentar y documentar bien el codigo) declarar variables y funciones que se identifiquen lo maximo posible con lo que representan o lo que hacen. Parece una tonteria, pero te puedes ahorrar mas de un fin de semana dando vueltas a algo muy simple solo por no nombrar correctamente. No digo que sea el caso (no has colgado todo el codigo), pero por lo que veo es lo que deduzco.

Saludos
vosk