2010-03-21 24 views
0

我需要從它由80字節4 int字段的服務器接收320個字節的數據的讀出4個單字節。我如何以4字節接收它們並顯示它們各自的int值?謝謝。如何接收從服務器發送的字節數組,並一次

不知道這是正確的接收部分:

//for reading the data from the socket 

BufferedInputStream bufferinput=new BufferedInputStream(NewSocket.getInputStream()); 

DataInputStream datainput=new DataInputStream(bufferinput); 

byte[] handsize=new byte[32]; 

// The control will halt at the below statement till all the 32 bytes are not read from the socket. 

datainput.readFully(handsize); 
+0

不宜緩衝區是320個字節,而不是32。如果你有自己的緩存,可以刪除的BufferedInputStream。如果按照建議使用readInt(),請保持BufferedInputStream。 –

回答

6
for (int i = 0; i < 80; i++) { 
    System.out.println(datainput.readInt()); 
} 
+0

感謝您的答案和SRY的錯誤,它應該是320.其實我知道有一些浮動,太中的320個字節的數據的其他一些數據類型。我可以做到這一點,以顯示INT各自的字段以及浮子式:
對(INT I = 0; I <80;我++){的System.out.println(datainput.readInt());的System.out.println(datainput.readFloat()); } 謝謝! – k80sg

+0

不完全。既然你正在讀8個字節的數據,現在(INT +浮動),你會迄今改變的循環來40倍,而不是80 – someguy

+0

謝謝大家的幫助,我還有一個問題,如果我需要什麼改變某些字段值來讀取數據以及重新包裝它們放回320字節數組,最後將其發送到另一臺機器。不知道怎麼做,但我想存儲讀取到各個變量首先所有的數據,使這些變量進行必要的修改和重新包裝他們相同的順序,我收到,最後發送。 – k80sg

相關問題