|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catanzaro
Messaggi: 976
|
[JAVA] chat per progetto, problemone
Sto facendo un progetto per un esame. E' una semplicissima chat unicast. Il programma ha dentro un ServerSocket e un Socket:
Programma 1 Programma 2 ServerSocket <- socket Socket -> ServerSocket Una volta che si collegano, il thread ServerSocket possiede: //riporto il codice sintentizzato senza try e cose varie ... while(true){ while(! buffer.isReady){ // finchè il buffer (sarebbe un bufferedReader del socket che mi invia la stringa, quindi l'altra chat) non è pronto per essere letto, addormento il thread. Thread.sleep(n*100);... } //se il buffer è pronto ClassePerLaGUI.add(buffer.readLine); //in pratica è una classe statica che appende la stringa ricevuta al textfield (<-statico) } così mi trasmetto le stringe. E fino a qui funziona tutto. Per aggiungerci qualcosina in più ho creato l'oggetto Profilo (nick, messaggio, Image Avatar), come msn più o meno. Quindi se io aggiorno il mio profilo(tutto, avatar compreso) appena clicco applica modifica al profilo, devo mandare l'oggetto Profilo al destinatario e l'ho fatto. Il problema è il thread del server! Come diavolo dovrei fare? Perchè con il bufferedReder non ha metodi che mi restituisce gli oggetti, ha solo alcuni read che restituiscono int, String e un booleano. Avevo pensato di creare un ObjectInputStream(socket.getInputStream), questo mi funziona come voglio, ossia mi restituisce l'object (che castizzo a Profilo) ma non è un Buffer e cosa più stupida, utilizza lo stesso socket.getInputStream() che utilizza il buffer, quindi mi succede un macello. Come potrei fare? Io devo usare sempre il buffer giusto? Ma non ha un metodo di ritorno Object? Come posso risolvere questa cosa? Se volete vi posto i metodi importanti. Ultima modifica di Nexus 6 : 18-08-2009 alle 20:28. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catanzaro
Messaggi: 976
|
Risolto, uso solo l'objectOutputStream al posto del buffer. Si corre qualche rischio nel ritardo dei dati in input?
Ultima modifica di Nexus 6 : 18-08-2009 alle 22:33. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:40.



















