Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda:Problemas con C

Estas en el tema de Ayuda:Problemas con C en el foro de Programación General en Foros del Web. Hola. Estoy programando sockets, y tengo un main cuyo bucle principal es como sigue: while(1){ lista_aux=lista_sockets; if((activos=select(FD_SETSIZE,&lista_aux,(fd_set *)NULL,(fd_set *)NULL,NULL))==-1){ perror("error en el select"); } printf("%d\n",activos); ...
  #1 (permalink)  
Antiguo 04/04/2003, 08:15
Avatar de [-H-]  
Fecha de Ingreso: marzo-2003
Mensajes: 75
Antigüedad: 21 años, 8 meses
Puntos: 1
Ayuda:Problemas con C

Hola.
Estoy programando sockets, y tengo un main cuyo bucle principal es como sigue:
while(1){
lista_aux=lista_sockets;
if((activos=select(FD_SETSIZE,&lista_aux,(fd_set *)NULL,(fd_set *)NULL,NULL))==-1){
perror("error en el select");
}
printf("%d\n",activos);
for(i=0;i<elementos;i++){
if(FD_ISSET(servicios[i].socket,&lista_aux)){
socket_dialogo=accept(servicios[i].socket,NULL,NULL);
switch(fork()){
case -1:perror("error creando el hijo");
break;
case 0 :close(servicios[i].socket);
atender_servicio(socket_dialogo, servicios[i].programa,servicios[i].v_argumentos);
exit(0);
break;
default:close(socket_dialogo);
break;
}
}
}
}
El problemas es que haciando un telnet(no voy a explicar lo que hace el programa entero, si es extrictamente necesario, lo explico), y probarlo, la primera pasada me lo hace todo bien, sale del select, atiende el puerto correspondiente, se crea el proceso hijom que atiende la petici¢n, pero luego, en la segunda pasada, al llegar al select, me da el siguiente error:
"error en el select:interrumped system call"., y deja de funcionar correctamente.
Alguien sabe lo que puede pasar?
Si alguien entiende del tema(sockets,select...) y me puede ayudar, puedo poner otro post explicandolo con mas detalla(todo el que sea necesario).
Espero que alguien "entienda" este post...
muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:33.