come funziona una chat?

Tutto ciò che altrimenti sarebbe OT
Rispondi
PyLinX
Novello Arciere
Messaggi: 41
Iscritto il: 22 agosto 2010, 10:31
Località: 127.0.0.1

Messaggio da PyLinX » 6 settembre 2010, 12:20

Come da titolo, volevo sapere quale era il funzionamento di una chat, ovvero che corrispondenza c'è tra client e server, cosa succede quando un utente si connetto, insomma, quello che fa una chat a livello teorico.

Grazie,
PyLinX

horus
Novello Arciere
Messaggi: 129
Iscritto il: 2 aprile 2010, 20:48
Località: Roma

Messaggio da horus » 10 settembre 2010, 0:22

Una chat è una comunicazione via socket tra un processo client e un processo server.
Il processo Server è sempre in ascolto su un determinato indirizzo e una determinata porta, ed "aspetta" le richieste di differenti processi Client per potergli offirire dei servizi (come la comunicazione tra di essi).
In realtà questo è il funzionamento di un'architettura client-server ma ovviamente può essere adatto anche alla tua richiesta.
In base alle richieste del client il server può mettere in comunicazione direttamente i clients che si vogliono contattare (facendolo funzionare come una sorta di p2p solo nel lato della comunicazione) oppure può ricevere i messaggi dal client mittente e poi inoltrarli ad un altro client (che sarebbe il destinatario).
Ovviamente questa comunicazione può essere concorrenziale (ovvero diversi processi clients su macchine differenti possono connettersi contemporaneamente sullo stesso Server) o sequenziale (ovvero possono accedere al server un solo client alla volta).
In ognuno dei due casi Il server può comportarsi in modi differenti può avere una tecnologia multithreading (che è la più recente tecnologia con prestazioni eccellenti) rispetto alla vecchia tecnologia fork.
Lo scambio dei dati solitamente avviene via socket ovvero instaurando una connessione TCP in quanto questo protocollo è affidabile e garantisce il recapito dei segmenti (che sarebbero i pacchetti di questo protocollo) al destinatario. Se vuoi approfondire ti consiglio di studiare un pò di reti di calcolatori e delle telecomunicazioni in generale. Se hai altre domande da fare o qualcosa non ti è chiaro sono lieto di rispondere.
Se all'inizio un'idea non è assurda, allora non c'è nessuna speranza che si realizzi. [A.E.]

Rispondi