Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Reti di calcolatori > [ESERCIZIO] Chat Java
Pages (3): « 1 [2] 3 »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
m735
TutoreStellato

User info:
Registered: Oct 2003
Posts: 157 (0.02 al dì)
Location: Milano
Corso: tecnologia della comunicazione
Anno: 2
Time Online: 1 Day, 14:39:44 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ma il prof a lezione ha detto che è troppo complicato questo codice... che lui non può correggere 200 compiti così...
lo ignoriamo?

__________________
Killer Coca-Cola

REBOC

www.nococacola.info

12-10-2004 18:11
Click Here to See the Profile for m735 Click here to Send m735 a Private Message Find more posts by m735 Add m735 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Lunik
dsy core staff

User info:
Registered: Mar 2002
Posts: 22362 (2.68 al dì)
Location: Milano
Corso: ComDig
Anno: Dott.ssa
Time Online: 93 Days, 0:52:10 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ma non è stato gfp (non chiamatelo MAI PROF!!!!) a darvi questo esercizio??

__________________
Il DSY su Facebook!!!

12-10-2004 18:22
Click Here to See the Profile for Lunik Click Here to See the Blog of Lunik Click here to Send Lunik a Private Message Visit Lunik's homepage! Find more posts by Lunik Add Lunik to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
mayetta
--

User info:
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

il codice di futurbaggio è stato definito troppo complicato per quello che in realtà è stato richiesto. credo che il mio e quello di yeah si avvicinino di più alla soluzione corretta.... credo :asd:

12-10-2004 19:13
Click Here to See the Profile for mayetta Click Here to See the Blog of mayetta Click here to Send mayetta a Private Message Find more posts by mayetta Add mayetta to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Irdwins
.amico.

User info:
Registered: May 2004
Posts: 21 (0.00 al dì)
Location: Milano
Corso:
Anno:
Time Online: 10:07:01: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ma i vostri li avete postati?

14-10-2004 16:19
Click Here to See the Profile for Irdwins Click here to Send Irdwins a Private Message Find more posts by Irdwins Add Irdwins to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
mayetta
--

User info:
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Irdwins
Ma i vostri li avete postati?


Intervento del moderatore
prima di postare messaggi inutili è meglio leggere T U T T O il thread. se l'avessi fatto avresti scoperto che, sì, abbiamo postato i nostri codici. per favore cerchiamo di non riempire questo forum di messaggi senza senso: leggete bene e solo dopo postate! grazie.

14-10-2004 16:28
Click Here to See the Profile for mayetta Click Here to See the Blog of mayetta Click here to Send mayetta a Private Message Find more posts by mayetta Add mayetta to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
gfp
Professore

User info:
Registered: Feb 2003
Posts: 106 (0.01 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 15:17:56 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

>Ma il prof a lezione ha detto che è troppo complicato questo codice...
>che lui non può correggere 200 compiti così... lo ignoriamo?

Confermo quanto detto a lezione: soluzioni semplici, senza fronzoli,
usando solo le primitive di base-base-base-base-base-base-base, etc.

Sono felice se alcuni di voi si dilettano di input bufferizzato, di gestione
di eccezioni esotiche, di controllo di condizioni che si verificano solo e
tutt'al più la notte di Halloween, etc. La loro arte raffinata sarebbe
oltremodo utile per un corso di Software Engineering. Ma qui siamo nel
corso di Reti: qualunque dettaglio che oscuri l'obbiettivo principale (che è
poi quello di imparare a mettere in fila, nell'ordine giusto, le primitive per la
manipolazione delle socket) è ridondante per me, e potenzialmente
pericoloso e frustrante per i non aficionados, i quali potrebbero essere
portati a credere che, senza conoscere i dettagli suddetti, l'esame non si
passa. All'esame di guida si richiede che il candidato mostri di saper
cambiare dalla prima alla seconda e dalla seconda alla prima (possibilmente
senza "grattare"), di saper curvare a destra e a sinistra, e di saper
parcheggiare lungo il marciapiedi in uno spazio libero di lunghezza doppia
rispetto a quella dell'autovettura. I parcheggi in derapata in uno spazio
minore della lunghezza della vettura, i sorpassi in curva e a marcia indietro,
etc. non costituiscono materia di esame. Chi li sa fare, li faccia pure, nella
sua vita privata, ma per favore non sia così perfido da postarne un filmato
in questo sito...

Lo dico e lo ripeto: quanto presentato finora a lezione, e nello stile di
programmazione iperspartano che ho usato a lezione, basta e avanza
per superare l'esame di Laboratorio (parte Java con stream socket -
ancora dobbiamo vedere la parte di Java con datagram socket, e le
corrispondenti parti C, ovviamente). Ogni divagazione che vada al di là
di quanto sopra, è tutto tempo prezioso sottratto ad altre attività assai
più remunerative (ivi incluso lo studio di quella che chiamate "la teoria"...).

14-10-2004 21:50
Click Here to See the Profile for gfp Click here to Send gfp a Private Message Find more posts by gfp Add gfp to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
gfp
Professore

User info:
Registered: Feb 2003
Posts: 106 (0.01 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 15:17:56 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Il codice postato da Yeah il giorno 11-10-2004 alle 20:24
(l'ultimo post di pagina 1 di questo thread) è quello che più
si avvicina allo spirito del corso, e a ciò che mi aspetto da voi.

Esteticamente parlando, l'unico particolare che avrei
migliorato è il trattamento dei caratteri ASCII 10 e 13.
Anzitutto avrei introdotto due variabili per rappresentarli,
e poi avrei fatto di tutto per rimuovere la dissimmetria
che essi inducono nel codice. Ma qui stiamo discutendo
della differenza tra 30 e lode e 30 e superlode... ;-)

14-10-2004 22:19
Click Here to See the Profile for gfp Click here to Send gfp a Private Message Find more posts by gfp Add gfp to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
gfp
Professore

User info:
Registered: Feb 2003
Posts: 106 (0.01 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 15:17:56 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

>il codice di futurbaggio è stato definito troppo complicato per quello che
>in realtà è stato richiesto. credo che il mio e quello di yeah si avvicinino
>di più alla soluzione corretta.... credo

Nel tuo codice, a parte dettagli del second'ordine, avrei preferito se tu
non avessi usato il metodo readline() e la sua classe di appartenenza,
usando invece una semplice read()

Inoltre, faccio presente che "la soluzione corretta" non esiste. [Almeno
nella programmazione, cercate di mettere da parte il senso del peccato
che ci è stato inculcato da piccoli in quasi tutti noi sudeuropei...] Esistono
solo soluzioni e non-soluzioni. Tra le prime, alcune sono più gradite di
altre. Il gradimento è dipendente dal contesto in cui ci si trova a operare.
Ciò che è gradito a Reti potrebbe non esserlo a Software Engineering, e
viceversa. Per il corso di Reti, i principi cui ispirarsi sono due:

1. Tutto quello che non c'è non si rompe.

2. La migliore soluzione non è quella in cui non c'è più nulla da
aggiungere, ma quella in cui non c'è più nulla da togliere.

14-10-2004 22:34
Click Here to See the Profile for gfp Click here to Send gfp a Private Message Find more posts by gfp Add gfp to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Francesko
.illuminato.

User info:
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

chiedo scusa ma sono nel panico...
ho compilato il codice postato da yeah (l'ultimo post di pagina 1 di questo thread) e funge.
poi devo eseguire prima chat_s.java e poi chat_c.java, giusto? solo che quando li avvio mi appaiono rispettivamente due messaggi con scritto "server avviato" e "client avviato" e poi devo chiudere perchè non posso fare più niente.
forse è per il fatto che il mio pc non è in rete? io ho copiato e incollato il codice di yeah pari pari...
aiuto!

27-10-2004 09:31
Click Here to See the Profile for Francesko Click here to Send Francesko a Private Message Find more posts by Francesko Add Francesko to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.21 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Non afferro appieno come fai a eseguire server e client :)
Mi pare di capire che cerchi di farli andare insieme sulla stessa riga di comando.

Io faccio così:
ci vogliono due prompt dei comandi.

- nel primo scrivo
"java Chat_s"

- nel secondo
"Java Chat_c"

E' importante fare andare prima il server e poi il client, se fai il contrario il client esce senza fare nulla :)

Una volta che i due programmi sono partiti (qualche istante dopo i messaggi di "... avviato") sul server compare "Remote> " e sul client compare "Local> ".

"Local>" identifica dove si deve scrivere. Una volta inviato il messaggio tale apparirà sull'altro programma dopo un "Remote> "


:cool:

__________________
?

27-10-2004 21:12
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Francesko
.illuminato.

User info:
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ma infatti io faccio come te!! solo che dopo che eseguo Chat_s mi appare la scritta "server avviato" e poi si blocca, non appare nessuna scritta, non posso fare più niente e quindi devo chiudere tutto... mah!! :sad:

29-10-2004 10:37
Click Here to See the Profile for Francesko Click here to Send Francesko a Private Message Find more posts by Francesko Add Francesko to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.21 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ma java non era fatto per essere più portabile del C? :)

Sicuro che avvii prima il server (Chat_s) e poi il client Chat_c?

Se avvii solo il server questo si blocca sulla riga che visualizza, aspettando la connessione del client.

__________________
?

29-10-2004 10:44
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Francesko
.illuminato.

User info:
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

io avvio prima il server, ma il client non riesco ad avviarlo perchè dopo che avvio il server mi rimane la scritta "server avviato" e non riesco più a fare nulla... va beh, ci rinuncio... grazie comunque!!

29-10-2004 11:29
Click Here to See the Profile for Francesko Click here to Send Francesko a Private Message Find more posts by Francesko Add Francesko to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.21 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Allora scusa, ma davvero usi un prompt solo :), per forza non riesci ad usarlo.

Apri 2 diversi prompt, su uno avvii il server e sull'altro il client

__________________
?

29-10-2004 11:35
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
boban
.consigliere.

User info:
Registered: Dec 2003
Posts: 131 (0.02 al dì)
Location: qui
Corso: comunicazione digitale
Anno: 999999999
Time Online: 5 Days, 0:38:16 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by yeah
Ecco la mia versione di questo esercizio:

Server - Chat_s.java
code:
import java.net.*; import java.io.*; class Chat_s { public static void main(String args[]) { int c; String localPrompt = "Local> ", // richiesta di input remotePrompt = "Remote> "; // visualizzazione dei caratteri ricevuti ServerSocket listener; // socket di accettazione delle connessioni Socket established; // socket della connessione accettata InputStream sock_in; // Stream di input del Socket OutputStream sock_out; // Stream di output del Socket System.out.println("Server avviato"); try { // Apertura del socket di ascolto listener = new ServerSocket(6000, 300); established = listener.accept(); //connessione accettata listener.close(); //Chiusura del socket di ascolto, non più necessario sock_in = established.getInputStream(); sock_out = established.getOutputStream(); while(true) { /* * Visualizzazione dei caratteri ricevuti * fino alla fine del messaggio, caratterizzato * dal codice del tasto [INVIO] */ System.out.print(remotePrompt); while((c = sock_in.read()) != 13) System.out.print((char) c); // Ritorno a capo System.out.println(); /* * Visualizzazione della richiesta di input * e lettura e invio dei caratteri fino * alla pressione di [INVIO] */ System.out.print(localPrompt); while((c = System.in.read()) != 10) sock_out.write((int) c); } //established.close(); // codice irraggiungibile a causa del while(true) } catch(IOException e) {} } }


Client - Chat_c.java
code:
import java.net.*; import java.io.*; class Chat_c { public static void main(String args[]) { int c; String localPrompt = "Local> ", // Richiesta di input remotePrompt = "Remote> "; // Visualizzazione dei caratteri ricevuti Socket connection; // Socket di connessione col server InputStream sock_in; // Stream di input del Socket OutputStream sock_out; // Stream di output del Socket System.out.println("Client avviato"); try { // Tentativo di connessione col server connection = new Socket("localhost", 6000); sock_in = connection.getInputStream(); sock_out = connection.getOutputStream(); while(true) { /* * Visualizzazione della richiesta di input * e lettura e invio dei caratteri fino * alla pressione di [INVIO] */ System.out.print(localPrompt); while((c = System.in.read()) != 10) sock_out.write((int) c); /* * Visualizzazione dei caratteri ricevuti * fino alla fine del messaggio, caratterizzato * dal codice del tasto [INVIO] */ System.out.print(remotePrompt); while((c = sock_in.read()) != 13) System.out.print((char) c); // Ritorno a capo System.out.println(); } // connession.close(); // codice irraggiungibile a causa del while(true) } catch(IOException e) {} } }


:)

Se vi doveste chiedere: "Ma come, il ciclo di input termina con la lettura di 10 e il ciclo di ricezione dal socket termina col 13?"

Il tasto INVIO equivale a 2 codici ascii, 13 e 10 (carriage return e line feed, o il contrario, non ricordo). Quando si preme INVIO, il carattere 10 viene inviato sulla connessione e il 13 termina il ciclo.

Quindi, dall'altra parte, il messaggio ricevuto terminerà con il 10 :)


Ho provato a compilare il tuo codice...compilo il server e tutto ok--attende..poi il client e mi da questo errore:

Exception in thread "main" java.net.ConnectException: Connection refused: connec
t
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at java.net.Socket.connect(Socket.java:402)
at java.net.Socket.<init>(Socket.java:309)
at java.net.Socket.<init>(Socket.java:124)
at Client.main(Client.java:12)

Che significa???Help!!!
Cosa devo fare??

14-03-2005 11:48
Click Here to See the Profile for boban Click here to Send boban a Private Message Find more posts by boban Add boban to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 18:50.    Post New Thread    Post A Reply
Pages (3): « 1 [2] 3 »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.088 seconds (79.10% PHP - 20.90% MySQL) con 26 query.