Вы можете найти первое ненулевое значение с конца, а затем скопировать эти данные в новый массив:
int len = 512;
while (len > 0 && received[len - 1] == 0) {
len--;
}
{
byte[] cropped = new byte[len];
if (len > 0) {
Array.Copy(received, 0, cropped, 0, len);
}
received = cropped;
Если возможно, вы должны попытаться выяснить, каков фактический размерданные вместо того, чтобы искать ненулевые значения.Возможно, что данные будут содержать нулевые значения в конце, которые не должны быть удалены.
Edit:
Метод ReceiveFrom
возвращает количество байтов, которые вы получили в буфере,Вы должны использовать это:
byte[] received = new Byte[512];
int len = Sockitty.ReceiveFrom(received, ref endPoint132);
byte[] cropped = new byte[len];
Array.Copy(received, 0, cropped, 0, len);
received = cropped;