Oppure

Loading
16/01/08 19:54
finanza
Ciao, sto sviluppando un'applicazione client/server(o meglio una client e una server) per l'autenticazione di un client. Il problema è che non riesco a mandare array di byte dall'uno all'altro. O meglio, se utilizzo il socket per spedire solo byte funziona tutto, mentre se prima invio stringhe e poi cerco di mandare byte non ci riesco. In breve il codice ha due variabili esterne in e out che a un certo punto inizializzo:

.....
private BufferedReader in = null;
private PrintWriter out = null;
.....
in = new BufferedReader( new InputStreamReader (socket.getInputStream()));
out = new PrintWriter(new BufferedWriter (new utputStreamWriter(socket.getOutputStream())), true);
....
invio un po'di stringhe
....
public byte[] sendBytes()
{
Random rand = new Random();
byte b[] = new byte[4];
rand.nextBytes(b);
try{
InputStream i = socket.getInputStream();
OutputStream o = socket.getOutputStream();
System.out.println("sent";);
for(int x=0; x<4; x++)
System.out.print(b[x]+".";);
o.write(b);
return b;
}
catch(Exception e)....
Il client fa tutto come il server a parte
public byte[] receiveBytes()
{
try{
InputStream i = socketSSL.getInputStream();
OutputStream o = socketSSL.getOutputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
int x=0;
while((x=i.read())!=-1)
output.write(x);
byte[]b=output.toByteArray();
System.out.println("received";);
for(x=0; x<4; x++)
System.out.print(b[x]+".";);
return b;
}
catch(Exception e).....
Quello che succede è che il client si blocca al ciclo while: in pratica non gli arriva nulla! Se invece non inizializzo le variabili in e out il tutto funziona....perchè???
aaa