 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[LAB - COMDIG] Argomenti di studio Clicca QUI per vedere il messaggio nel forum |
cia |
sapete dove poter reperire il materiale da stud x Laboratorio?
e cosa c'è da saper fare esattamente (in base anche agli esercizi che avete svolto il 28/1) ?
Gracias:cool: |
GinoPilotino |
Originally posted by Flavia
Ti risponde Gino!
ma come flavia, se i programmi me li hai passati tu all'esame :D |
Flavia |
:sbonk:
Comunque, codice del client e server in java, sia TCP e UDP, server multithread in java, e con il C non so! |
futurbaggio |
Originally posted by cia
sapete dove poter reperire il materiale da stud x Laboratorio?
reti.dico.unimi.it nella sezione Diario delle Lezioni.
Più generalmente ti consigio di approfondire con i codici postati in questo Hosted e con Google se non capisci qualcosa.
Originally posted by cia
e cosa c'è da saper fare esattamente (in base anche agli esercizi che avete svolto il 28/1) ?
Ti dico per i moduli che c'erano nel mio esame il 28 gennaio:
1) Completamento di un codice Java per un client TCP: inserimento di chiamate di funzioni, specificazione di parametri (quali numero di porta) etc etc
2) Implementazione da zero di una classe Server TCP multithread, non era richiesto di costruire tutto ma solo il metodo main che lanciava un accept() e poi gestiva le richieste aprendo un thread specifico per ogni singola richiesta.
3) Implementazione del metodo run() della classe ServerThread, qualche chiamata della classe Socket() di cui si fa facilmente il copia incolla dal client :D
4) Domande a risposta multipla sul C, il miglior supporto in questo caso è il comando man di Linux... per chi non usasse Linux basta scorrere le slide di Eugenio e approfondire presso http://www.rt.com/man/
Roberto |
cia |
Grazie futurbaggio sei troppo the best!
cmq x la parte di C studierò le slide dl Cassiano e basta..già non so java... |
futurbaggio |
Originally posted by cia
cmq x la parte di C studierò le slide dl Cassiano e basta..già non so java...
Per le domande che c'erano non bastano le slide, tanto per C nn bisogna mettere giù il codice... una lettura delle man pages resta iper-consigliata
Roberto |
cia |
ok, allora ci darò dentro! |
Barone |
Originally posted by cia
ok, allora ci darò dentro!
si confermo quanto detto da futur..io avevo studiato molto bene le slide di cassiano ma sono nettamente insufficienti per affrontare la parte su "c"...vai di man pag!! |
cia |
vi ricordate alcune domande di quelle a risposta multipla sul C?^^ |
lucaburry |
Mi ricordo che chiedeva maggiormente le varie primitive... |
futurbaggio |
Tutte domande sulle primitive, tipo:
- quali parametri della primitiva socket()devo usare per creare una socket UDP?
- cosa fa la primitiva listen(20)?
Molte erano anche simili ma si distinguevano per poco, una cosa positiva che spesso ti aiuta a risolvere dubbi su domande precedenti che non si sapevano :D
Roberto |
Mifune |
domandina...
allora vi ricordate piu o meno il codice degli esercizi chiesti l'ultimo tema? |
GinoPilotino |
un semplice client e un semplice server multithread in TCP :) |
Mifune |
grazie gino ;)
se riesci posti il code ? :lode: |
Voodoo |
Ragazzi scusate la domanda ma la chat java fatta da yeah o futurbaggio o che so io,che fine ha fatto? Ho guardato tutti i thread e nn l'ho mica trovata! Non è che la rimettete?
Thx
Ciauz |
Voodoo |
Trovato.Scusate,facevo next Thread e mi diceva che eran finiti ma invece..... :p
ciauz |
GinoPilotino |
Originally posted by Mifune
grazie gino ;)
se riesci posti il code ? :lode:
spulciando tra l'hdd ecco il codice client e server che ho fatto per alcune prove
client
code:
import java.io.*;
import java.net.*;
class client {
public static void main (String args[]) throws Exception {
boolean connessione=true;
int porta=4567; //la porta del server in ascolto è 4567 quindi creerò la socket su tale porta per connettermi
String versoServer, daServer;
Socket s=null;
//cerco di creare la socket per connettermi
try {
s = new Socket ("localhost", porta);
}
catch (IOException e) {
System.out.println("connessione non avvenuta");
System.exit(0); //se non avviene la connessione per qualche motivo esco dal programma
}
//creo le variabili rispettivamente per leggere da tastiera, leggere dalla socket e scrivere dalla socket
BufferedReader inFromUser = new BufferedReader (new InputStreamReader(System.in));
BufferedReader inFromServer = new BufferedReader (new InputStreamReader(s.getInputStream()));
DataOutputStream outToServer = new DataOutputStream (s.getOutputStream());
while (connessione) {
//accetto da tastiera una frase da inviare al server
System.out.print("inserisci la frase che vuoi inviare al server: ");
versoServer=inFromUser.readLine();
//la invio al server
outToServer.writeBytes(versoServer+"\n");
//ricevo la frase dal server
daServer=inFromServer.readLine();
System.out.println("Il server ha scritto: " + daServer);
//usciamo dal while
connessione=false;
}
//chiudo la connessione con la serversocket
s.close();
}
}
server
code:
import java.io.*;
import java.net.*;
class server {
public static void main (String args[]) throws Exception
{
ServerSocket server=null; //creo la serversocket che accetterà le connessioni dei client
Socket servizio=null; //creo la socket che gestirà la comunicazione coi client
/*cerco di creare la serversocket dove 4567 è la porta e 300 è il # max di connessioni che può
accettare contemporaneamente*/
try {
server = new ServerSocket(4567, 300);
}
catch (IOException e) {
System.out.println("creazione serversocket non avvenuta");
System.exit(0);
}
//inizio a creare l'oggetto serverthread
serverthread t;
System.out.println("\nServer in attesa di connessioni\n");
//eseguiamo il ciclo un # infinito di volte [se vogliamo possiamo modificare questo]
while (true) {
//servizio prende la connessione effettuata sul server
servizio=server.accept();
System.out.println("connessione accettata\n");
//passo i parametri al thread e successivamente lo lancio
t = new serverthread (servizio);
t.start();
System.out.println("Thread lanciato\n");
System.out.println("Ritorno in attesa di connessioni\n");
/*quando eseguirai il programma ti accorgerai che il server ritornerà in attesa di connessioni subito dopo aver
lanciato il thread, quindi anche se un utente non scrive niente al server qualcun'altro si potrà collegare e il
server lancierà un altro thread*/
}
}
}
class serverthread extends Thread {
Socket s=null;
String daClient, versoClient;
public serverthread (Socket servizio) {
//metto nella socket s del thread il valore della socket servizio passata dal server
this.s=servizio;
}
public void run() {
try {
System.out.println("Thread in esecuzione\n");
//creo le variabili per leggere e scrivere dalla socket s
BufferedReader inFromClient = new BufferedReader (new InputStreamReader(s.getInputStream()));
DataOutputStream outToClient = new DataOutputStream (s.getOutputStream());
//leggo la stringa inviata dal client
daClient=inFromClient.readLine();
//per semplicità modifico solo la stringa in maiuscolo e gliela rimando indietro
versoClient=daClient.toUpperCase();
outToClient.writeBytes(versoClient+"\n");
//chiudo la connessione col client
System.out.println("Esco dal Thread\n");
s.close();
}
catch (IOException e) { }
}
}
per la parte sull'udp vedere libro capitolo 3, mentre per le chat (sia in tcp che in udp) basta modificare un filo il codice con un ciclo di tipo while e il gioco è fatto.
riguardo alla parte inerente il c conviene leggersi molto bene le slides e soprattutto capire come vengono implementati i vari metodi guardando gli ottimi esempi (fondamentali!!!) postati da futurbaggio su questo forum.
in bocca al lupo a tutti per l'esame ;) |
Flavia |
Cioè solo client e server in C? :D
Bel codice Gino, l'ho già visto da qualche parte! :-D |
Flavia |
Originally posted by futurbaggio
Tutte domande sulle primitive, tipo:
- quali parametri della primitiva socket()devo usare per creare una socket UDP?
- cosa fa la primitiva listen(20)?
Molte erano anche simili ma si distinguevano per poco, una cosa positiva che spesso ti aiuta a risolvere dubbi su domande precedenti che non si sapevano :D
Roberto
Ma a me sembra che ci siano sulle slide no? |
futurbaggio |
Originally posted by Flavia
Ma a me sembra che ci siano sulle slide no?
Ognuno fa come gli pare, io ho dato un consiglio...
Roberto |
Flavia |
Originally posted by futurbaggio
Ognuno fa come gli pare, io ho dato un consiglio...
Roberto
Non ti ho mica criticato! Anzi, le sto leggendo le MAN! Ho notato solo che i metodi e le funzioni che chiedeva all'esame c'era sulle slide di Cassiano, anche se non trattate approfonditamente! :-D |
cia |
Originally posted by GinoPilotino
per le chat (sia in tcp che in udp) basta modificare un filo il codice con un ciclo di tipo while e il gioco è fatto.
in quali punti bisogna fare la modifica?:cool::D |
GinoPilotino |
Originally posted by cia
in quali punti bisogna fare la modifica?:cool::D :sbonk: |
lucaburry |
Ragazzi qualcuno puo' gentilmente postare il codice di un semplice client e un semplice server multithread in UDP...
GRAZIE!!!!!!!!!! |
Flavia |
Originally posted by lucaburry
Ragazzi qualcuno puo' gentilmente postare il codice di un semplice client e un semplice server multithread in UDP...
GRAZIE!!!!!!!!!!
Server multithread in UDP??? Non penso che esista..o se esiste non l'abbiamo fatto! :-D |
lelloraf |
ciao ragazzi tra un po dovro sostenere la prova di reti di calcolatori volevo chiedervi se avevate esercizi svolti oppure link dove andarlia prendere aspetto vostre notizie.grazie |
Flavia |
per la teroai penso non servano esercizi!
per il laboratorio guarda su reti.dico.unimi.it tutto il materiale che c'è, soprattutto le slide di cassaino su Java e C per la costruzione dei codici! |
luna |
Intervento del moderatore: ho fatto merge con un thread gia' esistente |
boban |
Scusate il Server Web è da fare??Ho visto che nessuno ne parla??
non l'hamai chciesto nei passati appelli??
GRAZIE:) |
yeah |
Non che io sappia.
Personalmente lo troverei ad un livello leggermente più avanzato rispetto agli esercizi che ha dato negli ultimi appelli (implicherebbe una minima conoscenza del protocollo HTTP, come sono fatti gli header etc...), non si sa mai però per i prossimi :D |
Flavia |
Veramente io il web server java l'ho trovato abbastanza utile per capire come funzionava la classe StringTokenizer, che nell'ultimo appello chiedeva... |
yeah |
Ha chiesto la StringTokenizer? Bah... non mi sembra esattamente 'una cosa di base'... :roll: |
joker402 |
Originally posted by yeah
Ha chiesto la StringTokenizer? Bah... non mi sembra esattamente 'una cosa di base'... :roll: non l'ha chiesta direttamente ma serviva per fare le operazioni che erano specificate nel testo degli esercizi. E infatti spero che nel vautare questa parte conti poco più che niente proprio perchè non c'entra direttamente con le conoscenze che erano richieste. :) |
Barone |
a poco meno di 20 gg dal prossimo appello vi chiedo:
il web server HTTP è mai uscito nei precedenti appelli? a me sembra di no.. |
aesse |
Originally posted by Barone
a poco meno di 20 gg dal prossimo appello vi chiedo:
il web server HTTP è mai uscito nei precedenti appelli? a me sembra di no..
Anche a me sembra non sia mai uscito.
Quello che chiede sempre è tcp/udp multithread, e qualcosina di programmazione per dare un senso all'esercizio.
Ad esempio vedere se un numero è pari, saper dividere una stringa in piu' stringhe. Nell'ultimo appello volendo si poteva fare la conversione da caratteri a interi, ma se non ti ricordi un dettaglio scrivi in un commento cosa volevi fare, in modo da far capire a Cassiano che le cose le sai.. |
Sir Punk |
non e' mai uscito.
qualcuno hai degli esercizi semplici dei seguenti problemi?
client, serverthread, server multithread
sia in TCP che in UDP?
grazie |
luna |
se guardi nell'area filez forse puoi trovare qualcosa ;) |
Barone |
Originally posted by luna
se guardi nell'area filez forse puoi trovare qualcosa ;)
non c'è molta roba che ci riguarda mi sembra..:) |
luna |
bè mi pare che ci siano i codici svolti degli scorsi appelli...
quelli postati da paolo...credo che vi interessino no?sono qui:
http://www.dsy.it/forum/showthread....&threadid=18489 ci sono gli appelli del primo marzo e dell'1 aprile se non sbaglio...
magari vi servono, non so!:) |
Barone |
Originally posted by luna
bè mi pare che ci siano i codici svolti degli scorsi appelli...
quelli postati da paolo...credo che vi interessino no?sono qui:
http://www.dsy.it/forum/showthread....&threadid=18489 ci sono gli appelli del primo marzo e dell'1 aprile se non sbaglio...
magari vi servono, non so!:)
ah si ora ok...prima forse c'era un link sbagliato ;)
grazie luna |
josh |
Ciao a tutti:
Posso chiedervi una cosa molto easy :
Dove si trovano:
le slide di Cassano per il c?
e le man pages?
...ps: serve altro da studiacchiare per la parte di C? |
yeah |
e le man pages?
Se hai linux dalla shell, altrimenti Unix Man Pages |
Barone |
le slide di cassIano si trovano nella parte dei doc sul sito di prini
http://reti.dico.unimi.it/index.php...4acfdf520e672d7
devi loggarti con account del silab attivo
le man page basta che usi linux, apri la shell e digiti: man "quello che ti interessa approfondire". Se nn hai linux (malissimo direbbe il mio tutor!!), cerca su google che le trovi sicuramente..oppure cerca i1 post di futurbaggio, qui da qualche parte, che dava un link diretto... |
josh |
scusa la super ignoranza ma che devo studiare delle man pages? |
Brov84 |
Qualcuno ha una Chat UDP in Java..serve disperatamente...grazie 1000!!! :shock: |
Biffone |
quali sono le primitive in c che chiede spesso all'esame?
vorrei fare un elenco; ognuno è libero di fare la sua segnalazione.
mi viene in mente:
Socket
Connect
Bind
Listen
Accept
Close
Getsockname
Getpeername
mi viene in mente nell'ultimo esame una domanda in cui era coinvolto il DNS. Qualcuno la ricorda nel dettaglio?
buono studio !!! |
|
|
|
|