Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: C o C++ per internet

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137

    C o C++ per internet

    Quando? Come? Perchè?


    Vorrei approfondire di più l'argomento di come vengano usati questi linguaggi sul web e su come implementarli.
    Spero qualcuno mi possa aiutare a fare una cultura in materia.
    Grazie mille
    $Pippo... la variabile preferita dall'ingegnere!

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Forse se ti sposti nella sezione CGI avrai migliori informazioni.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137
    fatto, ma pesavo forse fosse più attinente al linguaggio
    $Pippo... la variabile preferita dall'ingegnere!

  4. #4
    io penso che sia più pertinente questa sezione, in quella del cgi parlano più di perl.

    In ogni caso studiati il protocollo cgi, che è semplicissimo, normalmente vengono scritti dei programmi in C o C++ che risiedono in una delle cartelle cgi del server e i relativi programmi vengono invocati dal server stesso con cui dialogono proprio con il protocollo cgi. Le informazioni vengono scambiate con lo standard input, le variabili di ambiante e lo standard output.

    se hai delle richieste specifiche posta pure
    ciao
    sergio

  5. #5

  6. #6
    Ciao,
    banalmente C o C++ vengono usate lato server e sono "equivalenti" alle Servlet Java, oppure a Perl.

    Si basano sul CGI per comunicare, lo scopo per cui usare tale linguaggio a differenza di altri più semplici come Perl/PHP sono le performance. Come sappiamo C/C++ viene compilato, a differenza dei linguaggi di scripting che vengono trasformati a runtime.

    Ovviamente ad oggi usare C/C++ non serve veramente sia per le performance dei server dispinibili sia per la possibilità di ottimizzazione dei vari linguaggi di scripting.

  7. #7
    vi posto un codice che crea un eseguibile cgi.
    Dovete compilarlo e compiarlo nella cartella cgi-bin del vostro server, ed eseguirlo da un browser con http://vostro_server/cgi-bin/nome_eseguibile, questo è tutto.
    codice:
    #include <iostream>
    
    using namespace std;
    
    /* urldecode - v. RFC 1738 per i dettagli */
    string urldecode (string &input)
    {
            string str ;
            char c, c1, c2;
            const char *in = input.c_str();
            while (c = *in) {
                    if( c == '%' ) {
                            c1 = *(++in);
                            c2 = *(++in);
    //                        if( c1 == EOF || c2 == EOF )  exit(0);
                            c1 = tolower(c1);
                            c2 = tolower(c2);
                            if( ! isxdigit(c1) || ! isxdigit(c2) )  return str;
                            if( c1 <= '9' )
                                    c1 = c1 - '0';
                            else
                                    c1 = c1 - 'a' + 10;
                            if( c2 <= '9' )
                                    c2 = c2 - '0';
                            else
                                    c2 = c2 - 'a' + 10;
                            str +=  16 * c1 + c2 ;
                    }
                    else if( c == '+' )
                            str +=  ' ' ;
                    else
                            str +=  c ;
                    in++;
            }
            return str;
    }
    
    int main (int argc, char *argv[])
    {
    
    	string document_root ;
    	string method ;
    	unsigned int length ;
    
            if ( getenv( "DOCUMENT_ROOT" ) )
    		document_root = getenv( "DOCUMENT_ROOT" );
    
    	if ( getenv( "REQUEST_METHOD") )
    		method = getenv( "REQUEST_METHOD" );
    
    	if ( getenv( "CONTENT_LENGTH" ) )
    		length = atoi( getenv( "CONTENT_LENGTH" ) );
    	else length = 0;
    
    	string the_query_string = "";
    	if ( method == "POST" ) {
    
    		if ( length > 0 ) {
    
    		  char * str = new char [length];
    
    		  cin.read (str, length);
    
    	  	  the_query_string = str;
    
    		  delete [] str;
    
    		}   
    
    	}
    	else if ( method == "GET" ) {
    
    		if ( getenv("QUERY_STRING") )
    			the_query_string = getenv("QUERY_STRING");
    
    		the_query_string = urldecode(the_query_string);
    
    	}
    	else {
    
    		string s1;
    		while ( cin >> s1 ) 
    			the_query_string += s1;
    
    	}
    
    
    	cout << "Content-type: text/html" << endl << endl;
    
    	cout << "query-string = " << the_query_string << endl;
    
    	return (0);
    
    }
    il codice è autoesplicativo, se c'è qualcosa di non chiaro chiedete pure
    ciao
    sergio

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    137
    Grazie mille, direi che l'esempio è una buona base di partenza
    $Pippo... la variabile preferita dall'ingegnere!

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Insomma, un eseguibile CGI può fare tutto ciò che il linguaggio permette, con o senza librerie aggiuntive (riavvii di sistemi, threads, processi, cose specifiche).
    L'importante è che l'output (sempre se deve esserci) deve solo essere HTML.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Originariamente inviato da XWolverineX
    Insomma, un eseguibile CGI può fare tutto ciò che il linguaggio permette, con o senza librerie aggiuntive (riavvii di sistemi, threads, processi, cose specifiche).
    L'importante è che l'output (sempre se deve esserci) deve solo essere HTML.
    Esattamente, come dici tu C/C++, Servlet o PHP lo scopo ultimo alla fine è quello, cambia solo il modo.

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.