In generale, è quella architettura per cui esistono due entità: la prima (client) che è progettata per richiedere servizi alla seconda (server), che riceve le richieste le elabora e fornisce una risposta.Sera,
vorrei sapere come è strutturata un'applicazione server/client.
Qui non c'entra strettamente la serializzazione: tu puoi mettere in comunicazione due macchine utilizzando i socket, come dici giustamente tu. Puoi vederli come un canale di comunicazione in cui si possono scambiare dati (byte) che poi una volta riassemblati insieme possono rappresentare quello che ti pare (una stringa, un file di testo, un video etcetc).Mi spiego meglio ... per quanto ne so, per far interagire le due applicazioni è necessario metterle in comunicazione tramite i socket e se non ho capito male si possono scambiare informazioni mediante la serializzazione dei dati.
In generale, è il client che fa una richiesta, che il server elabora e rispedisce al mittente. Ma poi tutto dipende dal tipo di 'server'...un server web riceve ed interpreta messaggi http, un server ftp riceve ed interpreta comandi ftp, il server di un videogioco vattelapesca probabilmente notifica tutti i client collegati in quel momento di ogni azione che viene effettuata...eccetera.La cosa che mi lascia più perplesso è la sincronizzazione dei client con il server.
Le soluzioni dovrebbero essere due, ogni volta che avviene qualcosa è il server a contattare i client ... oppure viceversa sono i client che ad intervalli regolari interrogano il server (polling?!).
Quello che tu chiami refresh è un concetto che è legato strettamente al tipo di applicazione. Nell'esempio della chat, potrebbe corrispondere al momento in cui un client invia un messaggio:Fino a quì ho detto cose corrette?!
Spero .. comunque andando avanti ... ora, se per esempio l'applicazione sviluppata è una chat, non è strettamente necessario un frequente refresh, ma in caso di altri tipi di applicazioni come per esempio dei giochi (anche molto elementari) basati su tempo, o azioni (colpire la palla ..etc..) come mi devo comportare? Impostare un bassimo tempo di refresh per ottenere le nuove informazioni?
diciamo che tizio e caio sono nella chat, tizio invia un messaggio al server che lo spedisce a caio, che si vede la chat 'refreshata', quindi in questo caso dal punto di vista di caio è il server a prendere 'l'iniziativa'.
Dipende dal funzionamento specifico di questa applicazione e ogni volta va studiato caso per caso.
Penso di non dire una vaccata se dico che in generale il server invia nuovi dati ai client ogni volta che sia necessario renderli noti ai client stessi.
Purtroppo se dei dati devono essere inviati c'e' poco da fare..puoi cercare di ottimizzare le prestazioni ma il discorso rimane strettamente legato alla banda disponibile.Avendo molti client che fanno molte richieste al server, non pregiudico le prestazioni di quest'ultimo?
Voi come suggerite di affrontare tale problema?
Anche grossi apparati basati sulla comunicazione di rete possono subire un collasso in caso di una utenza esagerata.
Io ti suggerisco di chiarirti un po le idee iniziando a dare una guardata alla pila internet e approfondendo il protocollo tcp/ip.
Poi studi qualcosina su Socket e ServerSocket visto che sei in ambito java, e poi vedrai che ti si spalancheranno diverse porte
![]()


Rispondi quotando