Applicazione gestibili da remoto

di il
16 risposte

Applicazione gestibili da remoto

Buonasera a tutti, mi sono appena iscritto al forum. Spero di non aver sbagliato sezione e tipi di titoli ecc...

Come da titolo vorrei realizzare un'applicazione che possa gestire poi in un secondo momento da remoto. Cioè mentre il mio software gira a casa, io vorrei inviare semplici istruzioni stando in ufficio. Allora il dubbio è: devo implementare qlcs tipo l'architettura client/server? o c'è qlcs di più veloce? Non so, magari esistono variazioni p2p.

Opero in C++

16 Risposte

  • Re: Applicazione gestibili da remoto

    Qualche tipo di app client server.
    Il sistema piu' banale e piu' semplice e' aggiungere alla tua app un server http.
    Non ti serve la complessita' di un vero web server, ma solo che capisca il protocollo http e gestisca semplice pagine html e form semplici.

    Trovi librerie gia' pronte per qualunque linguaggio, basta una breve ricerca su Internet.

    Questo se la tua app deve essere comandata a mano.

    Se invece sara' un'altro programma a comandarla, allora puoi utilizzare protocolli di comunicazione come XMLRPC, RESTful, SOAP, ecc. sempre basati su http.

    Poi ci sono soluzioni piu' raffinate come i protocolli P2P, il remoting, ...
  • Re: Applicazione gestibili da remoto

    Ma questa e' solo la prima parte del problema.

    La seconda e' rendere visibile da Internet il tuo pc di casa.

    Qui' e' tutta un'altra storia. Tu, da programma non puoi fare assolutamente nulla.

    Per questo dipendi dal provider (Telecom, Fastweb o altri) e dalla bonta' del tuo router adsl.

    Ma questa e' un'altra storia
  • Re: Applicazione gestibili da remoto

    Grazie per la risp.
    come rendere "un app visibile dall'esterno" dovrei saperlo (ho appena passato l'esame di reti ). la tua risp però mi fa nascere un altro dubbio: includo il server http nell'app che è in c++? ho un po' di lacune sull'implementazione di un server qndi nn mi è chiarissimo sto aspetto.

    Inoltre sì, le istruzioni inviate da remoto sono date "a mano", ma non so usare http...
  • Re: Applicazione gestibili da remoto

    Non è necessario http.

    Metti la tua applicazione in ascolto su una porta e adotta un tuo personale protocollo di scambio "comandI".

    O meglio, potresti includere il client nell'applicazione remota e fare tu da server su una porta come la 80. Così non avresti il problema di configurare il router dove andrai ad installare la tua applicazione. Basterà solamente configurare il tuo.
  • Re: Applicazione gestibili da remoto

    Buona idea, ma come metto l'applicazione in ascolto? listen() ?
  • Re: Applicazione gestibili da remoto

    In che senso? Non hai detto che lavori in C++?
  • Re: Applicazione gestibili da remoto

    Sì, C++. Non so come poter mettere in ascolto un eseguibile... oppure mi sfugge
  • Re: Applicazione gestibili da remoto

    Vuoi dire che vuoi realizzare un progetto del tipo che hai descritto e non hai la minima preparazione circa la programmazione di rete ?

    Scrivere un server che ascolta su una porta è un compito di base ... se non lo sai fare probabilmente dovresti cambiare il progetto che intendevi realizzare.

    Qui non ti si può scrivere il programma, ti posso solo dire di studiare tutto quello che riguarda i socket.
  • Re: Applicazione gestibili da remoto

    Non conviene usa un protocollo specifico: ti tocca scrivere anche il client.

    Se usi un serverino HTTP, come client puoi usare un qualunque browser.
    E visto che hai un browser anche sul cellulare, la tua app potrebbe essere gestita anche direttamente dal cellulare .

    Non solo, ma un serverino HTTP e' facile estenderlo: generalmente basta registrare una callback (un puntatore ad una funzione) ed assegnarle un nome (una stringa). Ed hai accessibile la nuova funzionalita'
    Oltre al fatto che se generi l'output in XML, puoi farci un sacco di altre cose.

    Di mini implementazioni di un server HTTP ne trovi a bizzeffe.

    Ad esempio:


    Non pensare ad un server come Apache Web Server o IIS della Microsoft. Questi sono oggettoni pensati per supportare sicurezza, migliaia di connessioni, ec...

    E' una banale libreria che inteptreta il protocollo HTTP e chiama delle callback che tu avrai opportunamente popolato. Una cosa un po' piu' evoluta di una socket. Ma non di molto.

    Certo, puoi trovare anche web server che ti fanno il caffe'. Ma per l'utilizzo che ne devi fare, ti basta la piu' semplice che trovi in circolazione.
  • Re: Applicazione gestibili da remoto

    Giusto, grazie mille migliorabile
  • Re: Applicazione gestibili da remoto

    oregon ha scritto:


    Non è necessario http.

    Metti la tua applicazione in ascolto su una porta e adotta un tuo personale protocollo di scambio "comandI".

    O meglio, potresti includere il client nell'applicazione remota e fare tu da server su una porta come la 80. Così non avresti il problema di configurare il router dove andrai ad installare la tua applicazione. Basterà solamente configurare il tuo.
    Non mi risulta che su un router si possano installare applicazioni!
    Ne sei sicuro?

    Se e' un router di una rete aziendale, e' improbabile che i sistemisti di rete lo permettano, meno che meno se e' per test

    Se e' il modem ADSL/router, non mi risultano modelli che lo permettano, e anche se lo si potesse fare, bisogna usare un cross compilatore perche' il router se va bene e' basato su ARM. Complicato!
  • Re: Applicazione gestibili da remoto

    Toh!

    Un'altro serverino ancora piu' minimale:

    Mongoose e' anche troppo complicato!

    Questo e' pure meglio:

    http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/examples.html

    Se programmi in C++, ci sono 2 librerie che si DEVE CONOSCERE: STL e Boost.
  • Re: Applicazione gestibili da remoto

    migliorabile ha scritto:


    Non mi risulta che su un router si possano installare applicazioni!
    Ne sei sicuro?
    Hai frainteso la mia (poco chiara) esposizione. Intendevo "configurare il router" (nel posto in cui c'è il computer) "in cui andrai ad installare ...".

    Mea culpa.
    Se programmi in C++ ..
    Direi anche che, per quello che vuole fare, deve conoscere le basi della programmazione di rete ...
  • Re: Applicazione gestibili da remoto

    oregon ha scritto:


    ...
    Direi anche che, per quello che vuole fare, deve conoscere le basi della programmazione di rete ...
    Ma visto che vuole fare della programmazione di rete !

    E anche configurare il router non e' banale.
    Tipo:

    - configurare il PC che contiene il serverino con un IP statico.
    - configurare il router perche' escluda il range di IP statici,
    - configurare le regole di forwarding ...
    - avere un router che permette di fare tutte queste cose (che non e' detto se uno usa il router fornito dal gestore, o ha comperato il routerino che costa di meno) ...

    C'e' ne di robbbba!!!!
Devi accedere o registrarti per scrivere nel forum
16 risposte