在用於插座下面的代碼,我聲明一個字節緩衝器而在一個循環中監聽客戶端的消息:將字節[]緩衝區重置爲零?
// Create some buffer
byte[] buffer = new byte[512];
while (true)
{
// Listen for messages from Client
int length = socket.getInputStream().read(buffer);
if (length != -1)
System.out.println(new String(buffer));
else
break;
// Reset buffer here to zeros?
}
每次我需要重置緩衝器的內容以接收新的消息。什麼是正確的方法來做到這一點?
這不是接收通過串一種可靠的方法插座。不能保證一個完整的編碼字節數組將在單個'read()'調用中返回。使用'DataInput/DataOutput''readUTF()/ writeUTF()'或其他同樣可靠的東西。 –
@JamesKPolk:或者我可以傳遞字節長度.. – user963241
是的,這可以工作,特別是如果您使用'DataInput/DataOutput'方法,例如'readInt()/ writeInt()'和'readFully() '。 –