![]() |
Pages (10): « 1 [2] 3 4 5 6 » ... Last » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Reti di calcolatori (http://www.dsy.it/forum/forumdisplay.php?forumid=68)
-- [info] Appello 1 Aprile (http://www.dsy.it/forum/showthread.php?threadid=18271)
Usa i tag {code} e {/code}, con le parentesi quadre
Qual'è il problema con il codice?
__________________
?
ho voluto solo postarlo se qualcuno lo controlla è meglio credo di averlo fatto giusto, magari può essere utile a qualcuno ciao
infatti io ti ringrazio!!!
tanx
Originally posted by mt661588
ho voluto solo postarlo se qualcuno lo controlla è meglio credo di averlo fatto giusto, magari può essere utile a qualcuno ciao
__________________
--I---DaniFilth---I--
ENDLESS SACRIFICE!!!
scusate ma se uno non ha mai programmato in java, come fa, una volta sistemata la struttura del client e del server, a scrivere il codice con le richieste effettive del client e le risposte del server?
Invento al momento?
E' fondamentale che sia giusto tutto o l'importante è solo che la struttura client server sia corretta?
__________________
Originally posted by mt661588
ho voluto solo postarlo se qualcuno lo controlla è meglio credo di averlo fatto giusto, magari può essere utile a qualcuno ciao
Originally posted by urcodiaz
scusate ma se uno non ha mai programmato in java, come fa, una volta sistemata la struttura del client e del server, a scrivere il codice con le richieste effettive del client e le risposte del server?
Invento al momento?
E' fondamentale che sia giusto tutto o l'importante è solo che la struttura client server sia corretta?
__________________
?
ciao a tutti,volevo farvi una semplice domanda, ma l'esame del 1 aprile, in particolare la teoria cosa sarà strutturata?
Crocette o croccette, domande aperte, V o F?
grazie mille.
se ne hai la possibilità potresti mettere qualke spiegazione del tuo codice per ki come me non è che ci capisca troppo?
TANX!!!!!
ciauu
Originally posted by mt661588
ho voluto solo postarlo se qualcuno lo controlla è meglio credo di averlo fatto giusto, magari può essere utile a qualcuno ciao
__________________
--I---DaniFilth---I--
ENDLESS SACRIFICE!!!
Originally posted by mt661588
ho voluto solo postarlo se qualcuno lo controlla è meglio credo di averlo fatto giusto, magari può essere utile a qualcuno ciao
__________________
Break Out
Originally posted by Flavia
Si, un server multithread che fa "partire" tanti thread diversi associati a vari processi!
Ovvero nella classe server avrai solamente una cosa del genere:
{
.....
Socket socket;
while(true) {
ServerThread t= new ServerThread(socket);
t.start();}
..}
e tutte le funzioni/operazioni le implementi nella classe
class ServerThread extends Thread
che implementerà un costruttore ServerThread e un metodo run che svolge proprio le fuznioni richieste (calcolare una somma ad esempio!).
Chiaro?Quindi il server "normale" si preoccupa solo di far partire un thread, non esegue nessun altra operazione o calcola, quindi "sbologna" tutto il lavoro al thread "t", che è un oggetto di tipo ServerThread.
Le sue azioni e il costruttore verranno indi implementate in una nuova classe, "ServerThread" che estende la classe Thread!
Se vuoi e se trovo tempo, ti scrivo il codice che ho fatto io all'esame!
![]()
__________________
Break Out
questo e il serverThread
import java.io.* ;
import java.net.* ;
import java.util.* ;
import java.lang.* ;
public class ServerThread extends Thread {
static Socket service ;
static OutputStream out ;
static InputStream in ;
StringTokenizer token ;
int risultato ;
// Costruttore del thread, ricevo la socket.
public ServerThread ( Socket s ) {
service = s ;
}
public void run() {
try {
// Inizializzo OutputStream.
out = service.getOutputStream() ;
// Inizializzo InputStream.
in = service.getInputStream() ;
/* Ricevo l'operazione dal client, la trasferisco
* all'interno di una stringa.
*/
String frase = "" ;
int c ;
while ( ( c = in.read() ) != 10 ) {
frase = frase + ( char ) c ;
}
// Creo uno StringTokenizer su frase per dividere gli operandi.
token = new StringTokenizer ( frase , " " ) ;
// Estraggo il primo numero.
int num1 = Integer.parseInt ( token.nextToken() ) ;
// Estraggo l'operatore.
char op = token.nextToken().charAt ( 0 ) ;
// Estraggo il secondo numero.
int num2 = Integer.parseInt ( token.nextToken() ) ;
// Casi dell'operatore.
switch ( op ) {
// Caso della somma.
case '+' :
risultato = num1 + num2 ;
break ;
/* Caso della differenza, se num1 < num2 allora
* non è possibile fare la differenza.
*/
case '-' :
if ( num1 > num2 ) {
risultato = num1 - num2 ;
} else {
risultato = -1 ;
}
break ;
// Caso della moltiplicazione.
case '*' :
risultato = num1 * num2 ;
break ;
/* Caso della divisione, se num1 < num2 allora
* non è possibile fare la divisione.
*/
case '/' :
if ( num1 > num2 ) {
risultato = num1 / num2 ;
} else {
risultato = -1 ;
}
break ;
}
// Creo una stringa con il risultato e un endline.
String ris = Integer.toString ( risultato ) + '\n' ;
// Passo il risultato al client.
for ( int j = 0 ; j < ris.length() ; j++ ) {
out.write ( ris.charAt ( j ) ) ;
}
// Ricevo una risposta dal client.
int risposta = in.read() ;
// Controllo se la risposta è pari o dispari.
if ( risposta == 0 ) {
System.out.println ( "Il risultato e' pari" ) ;
} else {
System.out.println ( "Il risultato e' dispari" ) ;
}
// Chiudo la connessione.
service.close() ;
} catch ( Exception e ) {
e.printStackTrace() ;
}
}
}
questo è il client
import java.io.* ;
import java.net.* ;
public class Client {
static Socket service ;
static OutputStream out ;
static InputStream in ;
static InputStreamReader reader ;
static BufferedReader myInput ;
public static void main ( String[] args ) {
try {
// Creo una Socket per comunicare con il server sulla stessa macchina.
service = new Socket ( "localhost" , 12000 ) ;
// Iniziallizzo OutputStream.
out = service.getOutputStream() ;
// Iniziallizzo InputStream.
in = service.getInputStream() ;
System.out.println( "Inserisci l'operazione da effettuare separando gli operatori da uno spazio" );
// Inizializzo le variabili per leggere da tastiera.
reader = new InputStreamReader ( System.in ) ;
myInput = new BufferedReader ( reader ) ;
// Leggo ciò che l'utente ha inserito.
String frase = myInput.readLine() ;
// Aggiungo '\n' per far terminare la stringa.
frase = frase + '\n' ;
// Passo al server l'operazione da effettuare.
for ( int i = 0 ; i < frase.length() ; i++ ) {
out.write ( ( int ) frase.charAt ( i ) ) ;
}
// Ricevo il risultato dal server.
int c ;
String ris = "" ;
while ( ( c = in.read() ) != 10 ) {
ris = ris + ( char ) c ;
}
// Trasformo la stringa passata in int.
int risultato = Integer.parseInt ( ris ) ;
/* Eseguo un controllo se il risultato è diverso da -1,
* allora stampo il risultato a video e passo al server
* il risultato dell'operazione per il controllo se è pari
* o dispari; altrimenti stampo che non è possibile effettuare
* l'operazione righiesta.
*/
if ( risultato != -1 ) {
System.out.println ( "Il risultato è " + risultato ) ;
if ( ( risultato % 2 ) == 0 ) {
out.write ( 0 ) ;
} else {
out.write ( 1 ) ;
}
} else {
System.out.println("Non è possibile effettuare l'operazione");
}
// Chiudo la connessione.
service.close() ;
} catch ( Exception e ) {
e.printStackTrace() ;
}
}
}
questo è il server
import java.io.* ;
import java.net.* ;
public class Server {
static ServerSocket ss ;
public static void main ( String[] args ) {
try {
// Creo una ServerSocket.
ss = new ServerSocket ( 12000 , 300 ) ;
while ( true ) {
// Accetto di effettuare un servizio per i client.
Socket sock = ss.accept() ;
ServerThread t ;
// Passo ai thread il compito di effettuare le operazioni richieste dal client .
t = new ServerThread ( sock ) ;
// Avvio il thread.
t.start() ;
}
} catch ( Exception e ) {
e.printStackTrace() ;
}
}
} ciao
non so rispondere alla tua domanda, cmq quello che ho fatto io è in tcp spero non vi crei problemi nella compilazione ciao
no..il programma funziona perfettamente..grazie...è questo dubbio tra ServerThread e ServerMultithread che mi da noia...
cmq grazie...inizio a capirci qualcosa...
__________________
Break Out
Ma sapete se in qualche turno degli esami passati ( gli ultimi 2 ) è stato richiesto di implementare un client ed un server Udp? Fino ad ora si è sempre parlato solo di tcp multithread, vero?
__________________
r
Ragazzi sono ancora alla prese con il capitolo 3 del libro in italiano, ero arrivato verso la fine vi chiedo chiaramente e prego a chi lo saa di rispondermi..
L'atm va fatti?
il 3.7 (compresi tutti quei sottoparagrafi incasinati)??
Thanks...
ps: risrivo la mia domanda di prima, è il compito (parte teorica) sarà solo a crocettE?
helpp
Originally posted by josh
Ragazzi sono ancora alla prese con il capitolo 3 del libro in italiano, ero arrivato verso la fine vi chiedo chiaramente e prego a chi lo saa di rispondermi..
L'atm va fatti?
il 3.7 (compresi tutti quei sottoparagrafi incasinati)??
Thanks...
ps: risrivo la mia domanda di prima, è il compito (parte teorica) sarà solo a crocettE?
helpp
__________________
"Solamente il cuore ti permette di vedere chiaramente.L'essenziale e' invisibile agli occhi"
bisogna vivere "alla giornata", senza crearsi troppe aspettative. quello che viene sarà un "di più" ed è da mettere nel salvadanaio.
Sono troppo una grilla petulante by Nous
All times are GMT. The time now is 00:40. | Pages (10): « 1 [2] 3 4 5 6 » ... Last » Show all 145 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.