Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    271

    [c] spiegazioni su codice

    Codice PHP:
    while ( lista ) {     
       if ( !
    lista->gioco ) {         
          break;     
       }         
       
    lista lista->Next

    if ( !
    lista ) {             
       
    printf("\n%s in attesa di un nuovo giocatore...\n"Nodo->Nick );     
       
    Nodo->gioco NULL ;         
       while ( !
    Nodo->gioco ) {         
          
    Start 'n';                     
          
    writen(Conn_fd,&Start,1);     
       }     
       
    Start 's';             
       
    writen(Conn_fd,&Start,1); 
    }     
    else {     
       
    Start 's';             
       
    writen(Conn_fd,&Start,1);     
       
    Nodo->gioco malloc (1); 

    allora da quello che ho capito (più che altro provandolo) questo pezzo di codice (relativo a un server concorrente a cui si collegano più client contemporaneamente) quando vede che si collega il primo client lo mette in attesa, quando arriva il secondo client sblocca il primo e permette di lanciare una partita tra i 2 e lo stesso vale per le successive coppie di client.. partendo dal fatto che writen è una funzione che usa write scritta solo per non creare problemi col buffer, qualcuno saprebbe commentare linea per linea il codice in modo da capire bene cosa succede ad ogni passaggio?

  2. #2

    Re: [c] spiegazioni su codice

    codice:
    /*Cicla fino a quando non trova l'ultimo nodo della lista, che disolito è NULL*/
    while ( lista ) {
       /*Se gioco è NULL esce*/
       if ( !lista->gioco ) { 		
          break; 	
       }
       /*Va avanti di un nodo*/
       lista = lista->Next; 
    }
    /*Se lista è effettivamente NULL*/
    if ( !lista ) { 	
       printf("\n%s in attesa di un nuovo giocatore...\n", Nodo->Nick );
       /*Questo codice non ha senso perchè cicla all'infinito, a meno che non ci sia altro codice nella writen*/
       Nodo->gioco = NULL ;	 	
       while ( !Nodo->gioco ) { 		
          Start = 'n';			 		
          writen(Conn_fd,&Start,1); 	
       } 	
       Start = 's';		 	
       writen(Conn_fd,&Start,1); 
    }
    /*Se lista non è NULL alloca un nuovo gioco e invia i necessari dati al client*/
    else { 	
       Start = 's';		 	
       writen(Conn_fd,&Start,1); 	
       Nodo->gioco = malloc (1); 
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.