Discussion:
Duda sobre sockets
(demasiado antiguo para responder)
David Aizpuru
2004-06-19 09:24:07 UTC
Permalink
Hola a todos, estoy haciendo una aplicacion tipo messenger, y tengo un
problema a la hora de autentificarme con el servidor. Mi duda es sobre si
se pueden poner varios recv a la vez, me explico:

recv(s_aux,entrada, sizeof(entrada) ,0);

if(strcmp(entrada,"AUTH_USER")==0){

printf("Autentificacion\n");
recv(s_aux,login, sizeof(login) ,0);
printf("Login: %s\n",login);
recv(s_aux,passwd, sizeof(passwd), 0);
printf("Password: %s\n",passwd);
send(s_aux,"AUTH_OK",strlen("AUTH_OK")+1,0);
}

Una vez abierta la conexion desde el cliente con el servidor, le mando
(send) una query "AUTH_USER", y este codigo (del servidor) interpreta que
le ha llegado dicha query y recibiria entonces el login y el password a
traves de esos recv dentro del if. Mi problema es que el cliente se cuelga
porque el servidor no le responde. Dentro de la parte cliente, todo
funciona bien, se envian los datos bien, pero es el servidor el que falla.

Alguna sugerencia?


Muchas gracias por anticipado.


David Aizpuru Herce.
Àngel
2004-06-19 13:33:08 UTC
Permalink
Post by David Aizpuru
Hola a todos, estoy haciendo una aplicacion tipo messenger, y tengo un
problema a la hora de autentificarme con el servidor. Mi duda es sobre si
recv(s_aux,entrada, sizeof(entrada) ,0);
if(strcmp(entrada,"AUTH_USER")==0){
printf("Autentificacion\n");
recv(s_aux,login, sizeof(login) ,0);
printf("Login: %s\n",login);
recv(s_aux,passwd, sizeof(passwd), 0);
printf("Password: %s\n",passwd);
send(s_aux,"AUTH_OK",strlen("AUTH_OK")+1,0);
}
Una vez abierta la conexion desde el cliente con el servidor, le mando
(send) una query "AUTH_USER", y este codigo (del servidor) interpreta que
le ha llegado dicha query y recibiria entonces el login y el password a
traves de esos recv dentro del if. Mi problema es que el cliente se cuelga
porque el servidor no le responde. Dentro de la parte cliente, todo
funciona bien, se envian los datos bien, pero es el servidor el que falla.
Alguna sugerencia?
Creo que el segundo recv se queda a la espera de que le llegue algo, y ese
algo no llega.

De todas formas yo lo haría de otra manera.
Enviaría la solicitud de conexión, el login y la contraseña todo de una vez.
Luego extraeria cada uno de ellos para asignarlos a unos campos que pudiera
utilizar.
Así, con un solo envio, necesitaría un solo recv.

Loading...