Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - java - chat p2p
Forum - Java - java - chat p2p

Avatar
cod3r (Normal User)
Newbie


Messaggi: 2
Iscritto: 06/08/2014

Segnala al moderatore
Postato alle 2:40
Mercoledì, 06/08/2014
Ciao a tutti e complimenti per le vostre competenze.
Premetto che ho già usato il tasto "Cerca nel forum";)
Mi piacerebbe realizzare una piccola chat p2p in java. Ho visto che ci sono alcuni esempi di chat client/server in cui bisogna eseguire pima il server e poi i client...è possibile unire i due apetti in modo da lanciare un unico eseguibile?
Tutti i consigli sono ben accetti, un grazie a chi risponderà! :k:

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:11
Venerdì, 08/08/2014
Fai una richiesta non semplice, dovresti avere qualche conoscenza di comunicazione tcp/ip, ne hai? Hai mai fatto qualche esperimento con i socket?
In ogni caso il sistema non è differente dagli esempi che immagino tu abbia trovato, in quel caso il server rimane in ascolto su una porta, quando un utente si connette questo viene memorizzato e ogni volta che invia un messaggio al server quest'ultimo lo rigira a tutti i client connessi, per il p2p cambia ben poco, il client rimane in attesa di una connessione (Lo chiamo client ma effettivamente in questo momento fa le veci del server) arrivata la connessione i due client si scambiano direttamente i messaggi senza che passino per il server.
Come detto in precedenza il sistema può risultare contorno se non si ha alcuna esperienza nel settore, ti consiglio quindi di sperimentare con i socket prima di avventurarti in un vero progetto.

PM Quote
Avatar
cod3r (Normal User)
Newbie


Messaggi: 2
Iscritto: 06/08/2014

Segnala al moderatore
Postato alle 15:15
Domenica, 10/08/2014
Ti ringrazio per la risposta!
Si, ho fatto degli esperimenti con i socket, non mi è ben chiaro come far conviere il lato client e il lato server all'interno della stessa applicazione. Faccio partire i vari "server", ma non so come farli comportare da "client".

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 17:23
Domenica, 10/08/2014
Guarda le classi che svolgono le funzioni di server e client in java non le conosco precisamente ma immagino che poco cambi da .NET puro, dove hai le classi TcpListener che rimane in accolto su una porta (Veci di server) e TcpClient che invece si connette.
Il metodo piu immediato che mi viene per creare la chat che desideri è:
-Un solo programma per ogni utente
-Il programma crea un istanza del server(semplifico) quindi si mette in ascolto su una determinata porta
-Subito dopo crea un istanza del client e rimane in attesa che l'utente decida di connettersi ad un altro client, ho riceva una connessione in entrata

Ora un client dovra tentare la connessione verso un altro, quindi l'utente1 immette i dati per connettersi all'utente2, quindi per l'utente1 il server smette di essere in ascolto e il client tenta una connessione verso il server dell'utente2. Utente2 riceve la richiesta di connessione e decide se rifiutare o accettare, se accetta anche il suo server smetti di ascoltare per tanto i due utenti rimangono con solo la parte client in funzione e possono comunicare tranquillamente attraverso uno stream di dati, quando la connessione viene terminata i due utenti si rimettono in ascolto di nuove connessioni.

Non guardare la terminologia, ne il discorso contorto che ho tirato in piedi, questa è una semplice soluzione che puo servirti a creare una versione semplificata di una chat p2p.

Tieni sempre a mente che hai a che fare con due classi, una che svolge veci di server e una che svolge veci di client, in poche parole una che rimane in attesa di connessione e l'altra che la tenta.

PM Quote