|
m735 |
Ma il prof a lezione ha detto che è troppo compli ... |
12-10-2004 18:11 |
|
|
m735 |
TutoreStellato
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
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 |
|
|
| |
|
Lunik |
ma non è stato gfp (non chiamatelo MAI PROF!!!!) ... |
12-10-2004 18:22 |
|
|
Lunik |
dsy core staff
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
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 |
|
|
| |
|
mayetta |
il codice di futurbaggio è stato definito troppo ... |
12-10-2004 19:13 |
|
|
mayetta |
--
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline
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
|
12-10-2004 19:13 |
|
|
| |
|
Irdwins |
Ma i vostri li avete postati? ... |
14-10-2004 16:19 |
|
|
Irdwins |
.amico.
Registered: May 2004
Posts: 21 (0.00 al dì)
Location: Milano
Corso:
Anno:
Time Online: 10:07:01: [...]
Status: Offline
Edit | Report | IP: Logged |
Ma i vostri li avete postati?
|
14-10-2004 16:19 |
|
|
| |
|
mayetta |
[QUOTE][i]Originally posted by Irdwins [/i]
... |
14-10-2004 16:28 |
|
|
mayetta |
--
Registered: Nov 2001
Posts: 1319 (0.16 al dì)
Location:
Corso:
Anno:
Time Online: 32 Days, 23:40:30 [...]
Status: Offline
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 |
|
|
| |
|
gfp |
>Ma il prof a lezione ha detto che è troppo compl ... |
14-10-2004 21:50 |
|
|
gfp |
Professore
Registered: Feb 2003
Posts: 106 (0.01 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 15:17:56 [...]
Status: Offline
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 |
|
|
| |
|
gfp |
Il codice postato da Yeah il giorno 11-10-2004 all ... |
14-10-2004 22:19 |
|
|
gfp |
Professore
Registered: Feb 2003
Posts: 106 (0.01 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 15:17:56 [...]
Status: Offline
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 |
|
|
| |
|
gfp |
>il codice di futurbaggio è stato definito troppo ... |
14-10-2004 22:34 |
|
|
gfp |
Professore
Registered: Feb 2003
Posts: 106 (0.01 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 15:17:56 [...]
Status: Offline
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 |
|
|
| |
|
Francesko |
chiedo scusa ma sono nel panico...
... |
27-10-2004 09:31 |
|
|
Francesko |
.illuminato.
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline
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 |
|
|
| |
|
yeah |
Non afferro appieno come fai a eseguire server e c ... |
27-10-2004 21:12 |
|
|
yeah |
.grande:maestro.
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
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> "
__________________
?
|
27-10-2004 21:12 |
|
|
| |
|
Francesko |
ma infatti io faccio come te!! solo che dopo che e ... |
29-10-2004 10:37 |
|
|
Francesko |
.illuminato.
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline
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!!
|
29-10-2004 10:37 |
|
|
| |
|
yeah |
Ma java non era fatto per essere più portabile de ... |
29-10-2004 10:44 |
|
|
yeah |
.grande:maestro.
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
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 |
|
|
| |
|
Francesko |
io avvio prima il server, ma il client non riesco ... |
29-10-2004 11:29 |
|
|
Francesko |
.illuminato.
Registered: Apr 2004
Posts: 216 (0.03 al dì)
Location: milano
Corso:
Anno: 3
Time Online: 4 Days, 20:34:26 [...]
Status: Offline
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 |
|
|
| |
|
yeah |
Allora scusa, ma davvero usi un prompt solo :), pe ... |
29-10-2004 11:35 |
|
|
yeah |
.grande:maestro.
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
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 |
|
|
| |
|
boban |
[QUOTE][i]Originally posted by yeah [/i]
... |
14-03-2005 11:48 |
|
|
boban |
.consigliere.
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
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 |
|
|
| |
|
All times are GMT. The time now is 18:50. |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|