|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2009
Messaggi: 43
|
[c++, ma anche altre lingue] Creare Server e accederci
Salve,
Allora: Io sto pensando di creare (come esercizio personale) un programma chat in c++ console. Il mio problema è che avrò bisogno di un server, col quale quelli che usano il mio programma possano comunicare tramite il server tra di loro. Però io non ho la più pallida idea da dove incominciare: 1. Devo prendere un Computer, installarci sopra Ubuntuserver o simili e tenerlo acceso 24 ore al giorno, o c'è un altro modo??? 2. E poi come si ad'accedere con un programma c++ a questo server??? Per favore chiaritemi le idee |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Quote:
2 Devi utilizzare i socket, basati presumilmente (ma ciò dipende dalle valutazioni del caso particolare) sul protocollo di trasporto TCP |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Devi guardarti i principi di programmazione client-server.
Il server dovrà stare sempre acceso.... questo per forza se vuoi che la chat sia accessibile sempre. Il server dovrà gestire più connessioni, sarà un server concorrente. In rete trovi davvero molta documentazione su questo argomento. Quando il server riceve una richiesta di connessione dal client, crea un processo filgio o un thread. Questo gestirà il dialogo con il client. Se lo fai in C++, il lavoro è abbastanza facilitato dato che esistono librerie che implementano giù parecchi automatismi. Per cominciare dai un occhio qui. (è C ma ti spiega bene il principio di funzionamento) |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
in alternativa ai socket potresti usare una tecnologia di remoting, che ti semplificherebbe le cose risparmiandoti la progettazione di un protocollo. l'unica tecnologia di remoting decente che io conosca per C++ é COM, ma funziona solo su Windows e se cominci ora ad impararla finirai senza esagerare l'anno prossimo. di conseguenza un'ottima idea potrebbe essere quella di passare a C# e giocare con WCF. altrimenti se tieni alla portabilitá puoi usare Java ed RMI, ma scoprirai che WCF é tutta un'altra cosa.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
peró é bene fare presente che l'architettura P2P comporta necessariamente l'inserimento da parte dell'utente di indirizzi IP almeno una volta (se speri di ritrovare gli stessi indirizzi anche la volta dopo, altrimenti sempre).
EDIT - inoltre un'architettura P2P é soggetta a limitazioni dovute ai vari tipi di firewall. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
ICE (disponibile anche per C# e Java) è probabilmente molto più semplice di COM e CORBA, e ha prestazioni che WPF si sogna ![]() |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Nov 2009
Messaggi: 43
|
Se si usa il p2p c'è bisogno di un server???
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
il server può benissimo essere il tuo pc, usi dyndns per collegarlo ad un nome di dominio e il gioco è fatto per quanto riguarda la chat dipende dal protocollo che vuoi usare....nel 1999 creai un banale programma di chat basato sul protocollo irc e devo dire che è di una semplicità incredibile tanto per capirci guarda quai http://irchelp.org/irchelp/rfc/chapter4.html#c4_3 come vedi la comunicazione avviene tramite l'invio di banali stringhe di testo contenenti un comando e un certo numero di parametri per inviare le stringhe usi ovviamente i socket o qualsiasi altro meccanismo di comunicazione via rete ( curl per esempio sarebbe un'ottima scelta ) detto questo per un programma di chat non sei necessariamente vincolato al C++, puoi benissimo usare python ad esempio, così risparmi tempo, bug e puoi metterci pure una bella interfaccia la cosa si fa più complicata se decidi di infilarci audio e video |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
questa domanda comporta qualche problema di nozioni di base
![]() io posso anche risponderti, ma una volta che l'ho fatto e che tu hai detto a te stesso "bene, allora creeró un'architettura P2P" che ci hai concluso visto che non sai cos'é un'architettura P2P? la mia risposta é no, non c'é bisogno di un server perché un'architettura P2P é un'architettura che non si basa su un server. |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() ![]() Togli pure il "probabilmente": è di gran lunga più semplice. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:44.