Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2013, 05:37
Macas
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
Medir cadena con un /0 por medio

Muy buenas,

Estoy haciendo una practica cliente /servidor en c ara uni usando sockets.

Para empezar tengo que enviar un "codigo + Hello World" del servidor al cliente, esto me funciona bien, pero hay una cosa que no me acava de convencer.

Cuando hago el sendto:
Código:
stshort(2,buffer);
            t_short=sizeof(short);
            strcpy(buffer+t_short,"HELLO WORLD");
            tamany_buffer=t_short+strlen(buffer+1);
            
            sendto(sockServer, buffer, tamany_buffer, 0, (struct sockaddr*)&server, sizeof(struct sockaddr_in));
en tamany buffer es igual al numero de caracteres que envio en este caso 14 hasta aqui todo perfecto luego en el cliente cuando recibo los datos con:
Código:
bytes_rebuts= recvfrom(sockClient, buffer, strlen(buffer), 0, (struct sockaddr*)&client, &client_t);
En el 3er campo de la funcion tengo que medir los caracteres recividos, lo que pasa que no se como recivir los bytes exactos, ya que si hago un strlen el valor que retorna es 0 ya que el mensaje que envio es /0/2He.. entonces no me lee mas alla del /0.

He probado en hacer un sizeof(buffer) lo que pasa que me mide el tamaño total de la variable, en este cas 2000 porque la tengo declarada asi.

Como puede poner que envie 14 caraceres i reciva 14?

Saludos