Pages: [1]   Go Down
Print
Author Topic: Prova laboratorio 08  (Read 1232 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Nyconator
Apprendista Forumista
**
Offline Offline

Posts: 130


« on: 12-01-2012, 11:07:44 »

Salve colleghi,

qualcuno è riuscito a completare l'esercizio (in JAVA) presente nella prova di laboratorio 08?

C'è qualcosa che non mi torna, sembra infatti che il numero di righe specificate nella consegna dell'esercizio non corrisponda a quelle del file "reale" (che, a differenza di quanto detto nell'esercizio, sappiamo essere in 151.97.252.4:80/gp/provaTPCD/07.aux (è esatto?).

Ho provato a svolgere l'esercizio, saltando le 22015 righe richieste dall'esercizio compiendo dei semplici readLine() in un ciclo for che itera quel numero di volte. E' corretto? O esiste un metodo skip() anche per le righe oltre che per i caratteri?

L'esercizio termina restituendo delle stringhe NULL, la mia teoria è che l'output restituito dal server non abbia affatto tutte quelle righe...

Qualcuno di buon cuore potrebbe postare il codice funzionante di questo esercizio, o illuminarmi su qualche mio errore?

Grazie mille Smiley
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #1 on: 12-01-2012, 11:30:20 »

io l'ho fatto così, e funziona 
Code:
/*Scrivere in C o Java un programma che:

    apra una connessione verso l'IP 192.168.0.34, port 80
    invii la stringa "GET /gp/prova/08.aux\n"
    nello stream testo ricevuto, salti le prime 22015 righe e scriva sulla standard output le righe dalla 22016 alla 22023
    salti altre 3828 righe in avanti
    legga il numero intero all'inizio della nuova riga corrente: si tratta di un ulteriore numero di riga, che diremo n
    scriva le righe dalla n alla n+8*/
    import java.io.*;
    import java.net.*;
    public class prova8
    {
    public static void main (String[] args)
    {
    try
    {
byte[] ad ={(byte)151, (byte)97, (byte)252, (byte)4};

InetAddress addr= InetAddress.getByAddress(ad);

Socket s=new Socket(addr,80);

InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br= new BufferedReader(isr);

OutputStreamWriter osw= new OutputStreamWriter(s.getOutputStream());
BufferedWriter bw=new BufferedWriter(osw);
PrintWriter out =new PrintWriter(bw,true);
out.println("GET /gp/provaTPCD/08.aux\n");

int i=1;
for(;i<=22015;i++)
{
br.readLine();
}
for(;i<=22023;i++)
{
System.out.println(br.readLine());
}
int j=i;
for(;i<(j+3828);i++)
{
br.readLine();
}
int n =Integer.parseInt(br.readLine());
i++;
for(;i<n;i++)
{
br.readLine();
}
for(int h=0;h<8;h++)
{
System.out.println(br.readLine());
}
}
   
    catch(Exception e)
    {
    System.out.println("errore");
    e.printStackTrace();
    }
    }
    }

Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Nyconator
Apprendista Forumista
**
Offline Offline

Posts: 130


« Reply #2 on: 12-01-2012, 11:37:25 »

ho appena provato il tuo codice, che in effetti è quasi identico a quello che avevo fatto io, e questo è l'output risultante

Code:
null
null
null
null
null
null
null
null
Errore null
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:443)
at java.lang.Integer.parseInt(Integer.java:514)
at fraProva8.main(fraProva8.java:96)
Socket chiusa



stesso problema che succede a me dunque, ciò che restituisce il server è solo NULL. A runtime cosa ti esce?
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #3 on: 12-01-2012, 11:38:51 »

  a me funziona, restituisce:
Code:
If you can dream - and not make dreams your master;
If you can think - and not make thoughts your aim;
If you can meet with Triumph and Disaster
And treat those two impostors just the same;
If you can bear to hear the truth you've spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
And stoop and build 'em up with worn-out tools:
If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breathe a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: 'Hold on!'
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Crasher
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #4 on: 12-01-2012, 11:40:05 »

Nyconator controlla questo:
gp/provaTPCD/07.aux
Questo file contiene meno di 22015 righe, ovvio che ricevi stringhe Null

Vivynz ha scritto
gp/provaTPCD/08.aux

Logged

Diventa ciò che sei nato per essere
Nyconator
Apprendista Forumista
**
Offline Offline

Posts: 130


« Reply #5 on: 12-01-2012, 11:45:44 »

ok lo ammetto, avevo provato a farlo stanotte e il sonno mi stava divorando... stamattina però non ho giustificazioni, che errore #@!!01Z#@!!@$^ Cheesy

grazie ragazzi
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #6 on: 12-01-2012, 14:27:46 »

Nyconator controlla questo:
gp/provaTPCD/07.aux
Questo file contiene meno di 22015 righe, ovvio che ricevi stringhe Null

Vivynz ha scritto
gp/provaTPCD/08.aux


e io nemmeno me n'ero accorta che avevi scritto 7 testate
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Pages: [1]   Go Up
Print
Jump to: