PDA

Visualizza la versione completa : [Java] Connessione Socket


reo
12-10-2004, 14:26
Ciao a tutti,
spero che qualcuno possa aiuttarmi perché stò diventando matto :dhò:
Devo trasferire 2 array di 8748 byte da un server a un client tramite socket....

-----------------------------------------------------
byte[] low = new byte[8784];
ServerSocket serverSocket = new ServerSocket(5000);
...
OutputStream out = clientSocket.getOutputStream();
out.write(low,0,low.length);
out.flush();
-----------------------------------------------------

La connessione funziona correttamente, il problema é che non mi manda tutto l'array ma solo in parte! Avete una soluzione a questo problema?

grazie x l'aiuto

LeleFT
12-10-2004, 15:06
Strano che ti mandi solamente parte dell'array. Ho visto che hai inserito, giustamente, una riga di codice che richiama il metodo flush() e questo dovrebbe, appunto, risolvere i problemi riguardanti la bufferizzazione. :bhò:

Prova a chiudere lo stream di output subito dopo aver effettuato il trasferimento, oppure a chiudere l'intera socket.


Ciao. :ciauz:

reo
12-10-2004, 15:16
Si si, alla fine chiudo il socket, ma niente!
ho provato un sistema del genere:

...
out.write(low,0,1000);out.flush();
out.write(low,1000,1000);out.flush();
out.write(low,2000,1000);out.flush();
...

e in lettura...
...
in.read(low,0,1000);
in.read(low,1000,1000);
...

ma niente risultati...

LeleFT
12-10-2004, 15:18
Prova ad utilizzare la versione abbreviata del metodo write():


out.write(low);

e prova a verificare se così facendo vengono trasferiti tutti i byte. In caso negativo, controlla se per caso tu non abbia commesso un errore in digitazione nella costruzione dell'array di lettura (magari dimensionandolo in modo errato). Credo, comunque, che non sia necessario dimensionare l'array di lettura, in quanto viene automaticamente inizializzato (e quindi anche dimensionato) durante la lettura.


Ciao. :ciauz:

reo
12-10-2004, 15:26
OK, grazie, provo a dare un'occhiata, ma ho paura che il problema sia dovuto alla grandezza fisica del buffer che non può caricare più di tot bit.

ciao

reo
12-10-2004, 15:35
niente da fare... manda 1380 byte e poi java.io.IOException...

Loading