elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Servidor Web en Windows [C] en: 16 Octubre 2013, 04:24 am
Que tal eferion gracias por tu interes en mi problema,
 sabes que sigo teniendo lio con recv ya que parece que el cliente nunca deja de mandar datos, porque aunque yo no toque ningún botón  el programa sigue corriendo como si recv no fuera bloqueante. Ahora estoy analizando al cliente de esta manera para luego armar la pagina:
Código:
 if(recv (comm_socket, RecvBuff, sizeof(RecvBuff), 0)){

      armo la página con los cambios
 }


apenas cargo la pagina entra al recv.
Habrá otra forma de saber cuando modifica algo el cliente?
2  Programación / Programación C/C++ / Re: Servidor Web en Windows [C] en: 7 Octubre 2013, 03:26 am
el identificador lo obtengo asi;
Primero creo el socket...
   conn_socket=socket(AF_INET,SOCK_STREAM, 0);
al conectarse un cliente abro un nuevo id;
comm_socket=accept(conn_socket,(struct sockaddr *)&client,&stsize);
es asi no?
por eso pongo la condición que me actualiza los valores de la página mientras el socket permanezca activo;
 while(comm_socket!=-1)
lo que yo hago, una vez que mando la pagina es :
closesocket(comm_socket);
y vuelvo a esperar conexiones.
3  Programación / Programación C/C++ / Servidor Web en Windows [C] en: 6 Octubre 2013, 21:33 pm
Actualizar página de Webserver

Hola comunidad, quiero hacer un server el cual se debe actualizar cuando el cliente modifica algo de la página. Como verán lo hago leyendo el método GET.
El problema es que en la segunda pasada el programa se cuelga. No sé como manejar el socket abierto(la condición para mantener la conexión) . O tal vez queda el buffer de recepción con basura.
¿ Alguna idea?. Gracias por leerme.

La parte en la que armo la página es ésta;
Código:

while(1){  
        
              
// Aceptamos conexiones entrantes
   printf("Esperando conexiones entrantes... \n");
   stsize=sizeof(struct sockaddr);  
  
  
   comm_socket=accept(conn_socket,(struct sockaddr *)&client,&stsize);

    
if (comm_socket){
    printf("Conexion entrante desde: %s\n", inet_ntoa(client.sin_addr));
    memset (SendBuff, 0, sizeof SendBuff);
    if(a=1){ //mando la pagina original
    strcpy(SendBuff,pagina);    
    send (comm_socket, SendBuff, sizeof(SendBuff), 0);
    a=0;
    }
    else{
         strcpy(SendBuff,pagina2);    //esta página sera la modificable
         send (comm_socket, SendBuff, sizeof(SendBuff), 0);
         }        
      
      
        if(recv (comm_socket, RecvBuff, sizeof(RecvBuff), 0)){
          
               recv (comm_socket, RecvBuff, sizeof(RecvBuff), 0);
    
                                puts("entre a armar");
          
                                armar_pagina();

   }
                     strcpy(SendBuff,pagina2);
                     puts(pagina2);
                     send (comm_socket, SendBuff, sizeof(SendBuff), 0);  
                     puts("aquiiiiii");
                     closesocket(comm_socket);

}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines