Pages: [1]   Go Down
Print
Author Topic: Problema con ritrasmissione su connessione già aperta  (Read 1268 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
ilpuglio
Apprendista Forumista
**
Offline Offline

Posts: 300



« on: 04-01-2012, 17:03:12 »

Mi riferisco in particolare alle prove 5 e 6 dove viene chiesto:

   5. Invii, sulla connessione già aperta, la stringa s, terminata da "\n"
   6. Scriva i byte ricevuti in risposta sulla standard output

Con questo codice qua non vengono stampati i nuovi byte (che dovrebbero essere "complimenti, hai superato la prova"), ma quelli vecchi, come se il Buffer non si fosse svuotato... Idee?

Code:
import java.io.*;
import java.net.*;

public class Prova5 {
public static void main (String[] args) {
try {
byte[] b={(byte)192, (byte)168, (byte)0, (byte)34};
byte[] prova={(byte)151, (byte)97, (byte)252, (byte)4};

InetAddress addr=InetAddress.getByAddress(prova);
Socket socket=new Socket(addr,80);

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

OutputStreamWriter osw=new OutputStreamWriter(socket.getOutputStream());
BufferedWriter bw=new BufferedWriter(osw);
PrintWriter out=new PrintWriter(bw, true);

//out.println("GET /gp/prova/05.aux\n");
out.println("GET /gp/provaTPCD/05.aux\n");
String s="";
int c=0;

while (br.read()!='[') {
//Cicla. Non fa niente.
}
while ((c=br.read())!=']') {
s+=(char)c;
}

s+="\n";
out.println(s); //Il giusto output è dato da "GET /gp/provaTPCD/05b.aux\n"

String str="";
while((str=br.readLine())!=null)
System.out.println(str);

socket.close();
br.close();
bw.close();
out.close();
}

catch (Exception e) {
e.printStackTrace();
System.out.println("exception");
}
}
}
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #1 on: 04-01-2012, 17:30:57 »

mi stavo scervellando su questo problema, poi cercando sul forum di sistemi distribuiti 1 ho trovato un post sull'esercizio 5 e il prof ha scritto:
In realtà tra il primo e il secondo GET occorre chiudere e riaprire la
connessione al server.

a questo punto mi sono arresa  [Emoticon] Asd

la stessa cosa viene fatta anche nella soluzione alla prova 19 che si trova sul sito.
« Last Edit: 04-01-2012, 17:32:58 by Vivynz » 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.
ilpuglio
Apprendista Forumista
**
Offline Offline

Posts: 300



« Reply #2 on: 04-01-2012, 17:47:36 »


In realtà tra il primo e il secondo GET occorre chiudere e riaprire la
connessione al server.


Ma lui stesso non dice "sulla connessione già aperta" Huh? Mah...
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #3 on: 04-01-2012, 17:53:49 »

eh lo so, appunto...però..parole sue 
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: