Entra

View Full Version : [C++]Client/server


abegord
19-10-2008, 19:39
Salve a tutti,
sto scrivendo un'applicazione client/server (nulla di complicato, una shell remota).
Più o meno mi funziona tutto, ho solo un problema che non so come risolvere: sinora ho impostato indirizzo IP e porta come delle costanti, ma le specifiche di progetto richiedono che questi due valori vengano inseriti dall'utente in fase di avvio del programma (Il client deve essere avviato con la seguente sintassi:
rsh_client <host remoto> <porta>
e simile per il server)
Come posso fare? Non credo sia una cosa impossibile, ma ho poca esperienza di programmazione.
Ringrazio tutti.
Ciao ciauz

71104
19-10-2008, 19:50
Salve a tutti,
sto scrivendo un'applicazione client/server (nulla di complicato, una shell remota).
Più o meno mi funziona tutto, ho solo un problema che non so come risolvere: sinora ho impostato indirizzo IP e porta come delle costanti, ma le specifiche di progetto richiedono che questi due valori vengano inseriti dall'utente in fase di avvio del programma (Il client deve essere avviato con la seguente sintassi:
rsh_client <host remoto> <porta>
e simile per il server)
Come posso fare? Non credo sia una cosa impossibile, ma ho poca esperienza di programmazione.
Ringrazio tutti.
Ciao ciauz
non vedo la difficoltà... sai leggere gli argomenti dalla command line? se si è fatta, metti i parametri in due variabili e alle funzioni dei socket passi quelle anziché le tue costanti. dov'è il problema?

abegord
19-10-2008, 20:04
Il problema è quello, non so leggere dalla comand line :-p

71104
19-10-2008, 20:29
Il problema è quello, non so leggere dalla comand line :-p basta che usi il prototipo del main che include l'array degli argomenti della command line:
int main(int argc, char *argv[]);
argv è un array di array di caratteri, cioè un array di stringhe; contiene esattamente argc stringhe, ciascuna delle quali è uno degli argomenti passati sulla command line.

appena entri nel main, prima cosa da fare è controllare che argc sia uguale a 3(nome del file eseguibile, primo parametro (indirizzo) e secondo parametro (porta), totale tre parametri); se non è 3 stampi un messaggio di errore ed esci, se è 3 prendi i valori dei parametri di indice 1 e 2 (lo 0 è il nome dell'eseguibile, non ti serve) in forma testuale da argv.

abegord
19-10-2008, 20:34
Grazie per l'aiuto, provo subito :-)
-Abegord-