我想使用此代碼Alllocate正確的字節數組大小
public static Socket connectToSocket(String name)
{
try
{
while(true)
{
byte[] receiveData = new byte[name.length()];
DatagramSocket clientSocket = new DatagramSocket(PORT);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
if(Arrays.equals(name.getBytes(),receiveData))
{
return new Socket(receivePacket.getAddress(),PORT);
}
}
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
連接到插座,但我的問題是,我點知道做什麼大小我的字節數組進行處理的所有信息。我試圖讓receiveData數組的大小很大,但是我意識到這不會起作用,因爲它會弄亂這個聲明。
if(Arrays.equals(name.getBytes(),receiveData))
什麼是解決此問題的最佳方法。
只是fyi,這不會編譯,因爲有可能你沒有達到return語句。 – lekroif 2013-05-05 23:31:50
實際上它編譯得很好java不檢查那個 – 2013-05-05 23:32:35
你可以寫入一個'ByteArrayOutputStream'來代替。有什麼方法可以在數據尚未完成時處理數據? – 2013-05-05 23:34:03