Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-05-2010, 19:34   #1
martino.ugolini
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
martino.ugolini è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2010, 20:09   #2
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da martino.ugolini Guarda i messaggi
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
1 Un server spento, evidentemente, non serve a nulla. Per cui se non ti va di basare il progetto su questa archittettura devi cambiarla passando ad un paradigma p2p oppure ibrido.

2 Devi utilizzare i socket, basati presumilmente (ma ciò dipende dalle valutazioni del caso particolare) sul protocollo di trasporto TCP
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2010, 20:15   #3
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
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)
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2010, 20:19   #4
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
1 Un server spento, evidentemente, non serve a nulla. Per cui se non ti va di basare il progetto su questa archittettura devi cambiarla passando ad un paradigma p2p oppure ibrido.

2 Devi utilizzare i socket, basati presumilmente (ma ciò dipende dalle valutazioni del caso particolare) sul protocollo di trasporto TCP
meglio p2p.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2010, 20:22   #5
fero86
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.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2010, 20:25   #6
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
meglio p2p.
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.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2010, 23:28   #7
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da fero86 Guarda i messaggi
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.
Ci sono anche CORBA e ICE, ma ovviamente dato il tenore delle domande direi che sono fuori portata.
ICE (disponibile anche per C# e Java) è probabilmente molto più semplice di COM e CORBA, e ha prestazioni che WPF si sogna
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2010, 16:19   #8
martino.ugolini
Member
 
Iscritto dal: Nov 2009
Messaggi: 43
Se si usa il p2p c'è bisogno di un server???
martino.ugolini è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2010, 16:54   #9
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da martino.ugolini Guarda i messaggi
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
nel tuo caso il p2p lo sconsiglierei, ti costringe solo ad implementare un sacco di codice per gestire il bootstrapping della rete p2p, peggio ancora se usi un dht

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
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2010, 18:46   #10
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da martino.ugolini Guarda i messaggi
Se si usa il p2p c'è bisogno di un server???
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.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2010, 21:55   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Ci sono anche CORBA e ICE, ma ovviamente dato il tenore delle domande direi che sono fuori portata.
ICE (disponibile anche per C# e Java) è probabilmente molto più semplice di COM e CORBA, e ha prestazioni che WPF si sogna
Ice: a framework for middlewares

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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
ASUS GPU Tweak III introduce lo spegnime...
Batterie per auto elettriche più ...
99,99€: imperdibile la soundbar LG S40T ...
Vivo X500 Series in arrivo anche in Euro...
Addio LiveNetTV: il raid della polizia m...
WhatsApp lavora a una nuova funzione per...
Un simil MacBook, ma con la RTX 5070: MS...
GAC Aion UT in anteprima, la piccola ele...
La Cina sfida Samsung e Micron: CXMT avv...
ECOVACS T50 OMNI Gen3 a 379€ non ha riva...
iPhone Duo, i video in 4K potrebbero sur...
Micron manda in pensione i chip GDDR7 da...
The Witcher 4: la scelta dell'Unreal Eng...
XBOX, il reset continua con nuovi licenz...
Apple AirTag torna a 26€, quello di seco...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v