.dsy:it. Pages (10): « First ... « 3 4 5 6 [7] 8 9 10 »
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)


Posted by ~paolo~ on 31-03-2005 14:56:

Question esame 1° marzo (versione UDP)

ciao, posto il codice di client e server UDP relativi all'esame del 1° marzo in cui veniva richiesto di controllare una stringa contenente un'operazione e visualizzando il risultato ( misono per ora fermato a qst punto senza considerare la parità)..

non riesco a capire perchè qnd lo mando in esecuzione rimane bloccato sulla stringa inserita e il server si sconnette

cleintUDP.java

code:
import java.io.*; import java.net.*; public class clientUDP { public static void main(String args[]) throws Exception { String operazione,frase_server; DatagramSocket client; InetAddress indirizzo; DatagramPacket pacchetto_send, pacchetto_recv; byte[] buffer = new byte[1024]; client = new DatagramSocket(); System.out.println("Inserisci l'operazione (num1 op num2) dove op e' l'operatore:"); BufferedReader from_client = new BufferedReader(new InputStreamReader(System.in)); operazione = from_client.readLine(); buffer = operazione.getBytes(); indirizzo = InetAddress.getByName("localhost"); pacchetto_send = new DatagramPacket(buffer, buffer.length, indirizzo, 7000); client.send(pacchetto_send); pacchetto_recv = new DatagramPacket(buffer, buffer.length); client.receive(pacchetto_recv); frase_server = new String(pacchetto_recv.getData()); System.out.println("Il risultato dell'operazione e':" + frase_server); client.close(); } }



serverUDP.java
code:
public class serverUDP { public static void main(String args[]) throws Exception { ThreadUDP t; t = new ThreadUDP(); t.start(); } }



ThreadUDP.java
code:
import java.io.*; import java.net.*; import java.util.*; public class ThreadUDP extends Thread { DatagramSocket server; DatagramPacket pacchetto_send, pacchetto_recv; InetAddress indirizzo; byte[] dati_recv = new byte[1024]; byte[] dati_send = new byte[1024]; String operazione,op; StringTokenizer operazione_spezzata; int a,b,risultato,porta_client; public void run() { try { while(true) { server = new DatagramSocket(7000); pacchetto_recv = new DatagramPacket(dati_recv, dati_recv.length); server.receive(pacchetto_recv); operazione = new String(pacchetto_recv.getData()); operazione_spezzata = new StringTokenizer(operazione); a = Integer.parseInt(operazione_spezzata.nextToken()); op = operazione_spezzata.nextToken(); b = Integer.parseInt(operazione_spezzata.nextToken()); if (op.equals("+")) risultato = a + b; else if (op.equals("-")) risultato = a - b; else if (op.equals("/")) risultato = a / b; else risultato = a * b; dati_send = (Integer.toString(risultato)).getBytes(); indirizzo = pacchetto_recv.getAddress(); porta_client = pacchetto_recv.getPort(); pacchetto_send = new DatagramPacket(dati_send, dati_send.length, indirizzo, porta_client); server.send(pacchetto_send); server.close(); } } catch (Exception e) {} } }



se riuscite a capire l'errore mi fate un grosso favore :(
grazie in anticipo.
ciao ciao

Paolo

__________________
msn: paolo198328@hotmail.com



Posted by papousek on 31-03-2005 14:59:

mi spiace..io parlo un altra lingua...

__________________
Break Out


Posted by Sir Punk on 31-03-2005 15:05:

codice di merda! FKL!

__________________
FCERCASI BATTERISTA


Posted by Sir Punk on 31-03-2005 15:06:

guarda non cercare di capire perche non va, copia tutto come un robot rincoglionito e prega che sia abbastanza per passare questo maledetto esame inutile

__________________
FCERCASI BATTERISTA


Posted by ~paolo~ on 31-03-2005 15:09:

Originally posted by Sir Punk
guarda non cercare di capire perche non va, copia tutto come un robot rincoglionito e prega che sia abbastanza per passare questo maledetto esame inutile


:) io puntavo di riuscire a passare almeno la parte di lab
per la teoria ci penserò....
:)
cmq mi manca solo qst qll in TCP e l'esempio del libro( trasformare un maiuscolo una stringa) sono riuscito con entrambi i protocolli... bohhhhhh
credo proprio che concludo cosìì

Ciao
Paolo

__________________
msn: paolo198328@hotmail.com



Posted by josh on 31-03-2005 15:19:

Originally posted by Sir Punk
guarda non cercare di capire perche non va, copia tutto come un robot rincoglionito e prega che sia abbastanza per passare questo maledetto esame inutile



Se questo lo ritieni inutile non so cosa tu possa pensare riguardo a :
dps
italiano
diritto
economia
IUM!!!!


Posted by papousek on 31-03-2005 15:25:

siamo OT..torniamo allo splendido e affascinante mondo di JAVA

__________________
Break Out


Posted by luna on 31-03-2005 15:32:

Intervento del moderatore:
si,siete decisamente OT!Tornate in topic!:)

__________________
"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 :D by Nous


Posted by papousek on 31-03-2005 15:50:

Re: esame 1° marzo (versione UDP)

Originally posted by ~paolo~
ciao, posto il codice di client e server UDP relativi all'esame del 1° marzo in cui veniva richiesto di controllare una stringa contenente un'operazione e visualizzando il risultato ( misono per ora fermato a qst punto senza considerare la parità)..

non riesco a capire perchè qnd lo mando in esecuzione rimane bloccato sulla stringa inserita e il server si sconnette

cleintUDP.java
code:
import java.io.*; import java.net.*; public class clientUDP { public static void main(String args[]) throws Exception { String operazione,frase_server; DatagramSocket client; InetAddress indirizzo; DatagramPacket pacchetto_send, pacchetto_recv; byte[] buffer = new byte[1024]; client = new DatagramSocket(); System.out.println("Inserisci l'operazione (num1 op num2) dove op e' l'operatore:"); BufferedReader from_client = new BufferedReader(new InputStreamReader(System.in)); operazione = from_client.readLine(); buffer = operazione.getBytes(); indirizzo = InetAddress.getByName("localhost"); pacchetto_send = new DatagramPacket(buffer, buffer.length, indirizzo, 7000); client.send(pacchetto_send); pacchetto_recv = new DatagramPacket(buffer, buffer.length); client.receive(pacchetto_recv); frase_server = new String(pacchetto_recv.getData()); System.out.println("Il risultato dell'operazione e':" + frase_server); client.close(); } }



serverUDP.java
code:
public class serverUDP { public static void main(String args[]) throws Exception { ThreadUDP t; t = new ThreadUDP(); t.start(); } }



ThreadUDP.java
code:
import java.io.*; import java.net.*; import java.util.*; public class ThreadUDP extends Thread { DatagramSocket server; DatagramPacket pacchetto_send, pacchetto_recv; InetAddress indirizzo; byte[] dati_recv = new byte[1024]; byte[] dati_send = new byte[1024]; String operazione,op; StringTokenizer operazione_spezzata; int a,b,risultato,porta_client; public void run() { try { while(true) { server = new DatagramSocket(7000); pacchetto_recv = new DatagramPacket(dati_recv, dati_recv.length); server.receive(pacchetto_recv); operazione = new String(pacchetto_recv.getData()); operazione_spezzata = new StringTokenizer(operazione); a = Integer.parseInt(operazione_spezzata.nextToken()); op = operazione_spezzata.nextToken(); b = Integer.parseInt(operazione_spezzata.nextToken()); if (op.equals("+")) risultato = a + b; else if (op.equals("-")) risultato = a - b; else if (op.equals("/")) risultato = a / b; else risultato = a * b; dati_send = (Integer.toString(risultato)).getBytes(); indirizzo = pacchetto_recv.getAddress(); porta_client = pacchetto_recv.getPort(); pacchetto_send = new DatagramPacket(dati_send, dati_send.length, indirizzo, porta_client); server.send(pacchetto_send); server.close(); } } catch (Exception e) {} } }



se riuscite a capire l'errore mi fate un grosso favore :(
grazie in anticipo.
ciao ciao

Paolo


cmq..penso che uno degli errori..sia di nn aver messo il costruttore con lo stesso nome della classe ThreadUDP...cioè manca proprio quello...un public ThreadUDP(){qualunque cosa}

ciaps

__________________
Break Out


Posted by UZI on 31-03-2005 16:14:

Originally posted by urcodiaz
quindi devo usare la classe engine?


no, engine è il nome arbitrario che ho dato io al thread. puoi chiamarlo anche pippo, se vuoi! ;)

__________________
those who test will find a bullet in they chest
put ta rest
by a brotha who was hopeless
grow up broke on tha rope of insanity
how many pistols smoking coming from a broken family


Posted by ~paolo~ on 31-03-2005 18:56:

Re: Re: esame 1° marzo (versione UDP)

Originally posted by papousek
cmq..penso che uno degli errori..sia di nn aver messo il costruttore con lo stesso nome della classe ThreadUDP...cioè manca proprio quello...un public ThreadUDP(){qualunque cosa}

ciaps


sai che non ho capito cosa intendi?

__________________
msn: paolo198328@hotmail.com



Posted by papousek on 31-03-2005 19:44:

ehm..io nn sono bravo in java..pero ho notato che quando si crea un costruttore..prima di fare il run()...di solito quando si crea appunto..ad esso si da lo stesso nome della classe a cui appartiene il costruttore...(penso sia una delle regole di java)..e appunto manca questo particolare..poi puo darsi che sbaglio...

dovrebbe essere cosi...

import java.io.*;
import java.net.*;
import java.util.*;

public class ThreadUDP extends Thread {
DatagramSocket server;
DatagramPacket pacchetto_send, pacchetto_recv;
InetAddress indirizzo;
byte[] dati_recv = new byte[1024];
byte[] dati_send = new byte[1024];
String operazione,op;
StringTokenizer operazione_spezzata;
int a,b,risultato,porta_client;


PUBLIC ThreadUDP(QUALCHE PARAMETRO) {QUALCOSA... <-------

public void run() {
try
{
while(true)
{
server = new DatagramSocket(7000);
pacchetto_recv = new DatagramPacket(dati_recv, dati_recv.length);
server.receive(pacchetto_recv);
operazione = new String(pacchetto_recv.getData());

operazione_spezzata = new StringTokenizer(operazione);
a = Integer.parseInt(operazione_spezzata.nextToken());
op = operazione_spezzata.nextToken();
b = Integer.parseInt(operazione_spezzata.nextToken());
if (op.equals("+"))
risultato = a + b;
else
if (op.equals("-"))
risultato = a - b;
else
if (op.equals("/"))
risultato = a / b;
else
risultato = a * b;

dati_send = (Integer.toString(risultato)).getBytes();
indirizzo = pacchetto_recv.getAddress();
porta_client = pacchetto_recv.getPort();
pacchetto_send = new DatagramPacket(dati_send, dati_send.length, indirizzo, porta_client);
server.send(pacchetto_send);
server.close();
}
}
catch (Exception e) {}
}
}


spero che ora sia piu chiaro...

__________________
Break Out


Posted by ~paolo~ on 31-03-2005 19:49:

ho fatto alcuni controlli (visualizzazione di variabili) e ho notato che la stampa della variabile int b non avviene... non so come mai :(

__________________
msn: paolo198328@hotmail.com



Posted by cia on 31-03-2005 19:51:

ragassuoli... ringrazio chi ha postato i codici e chi ha risposto ai nostri quesiti...
domani speriamo sia simile al primo appello, dove almeno c'erano parti di codice già scritte, e non come lo scorso appello dove bisognava scrivere tutto... andate in pace^^

__________________
But until we unite
I live for that night
Wait for time
two souls entwine


Posted by ~paolo~ on 31-03-2005 19:52:

Originally posted by papousek
ehm..io nn sono bravo in java..pero ho notato che quando si crea un costruttore..prima di fare il run()...di solito quando si crea appunto..ad esso si da lo stesso nome della classe a cui appartiene il costruttore...(penso sia una delle regole di java)..e appunto manca questo particolare..poi puo darsi che sbaglio...


il fatto è che non ha parametri e cmq l'avevo fatto anche nell'altro es e nn dava problemi,,, nn credo sia qll il prob ... cmq grazie lo stesso :)

__________________
msn: paolo198328@hotmail.com



All times are GMT. The time now is 03:43. Pages (10): « First ... « 3 4 5 6 [7] 8 9 10 »
Show all 145 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.