Возможно, это глупый вопрос, но, поскольку я относительно новичок в UDP, здесь все идет ... Если у меня есть два отдельных массива байтов, которые мне нужно, чтобы принимающая сторона получила как один большой массив, например:
byte[] Array1 = {1,1,1}
byte[] Array2 = {2,2,2}
Могу ли я избежать необходимости создавать буфер и копировать в него каждый массив, а затем отправлять этот буфер, например:
byte[] Buffer= new byte[Array1.Length + Array2.Length];
Buffer.BlockCopy(Array1, 0, Buffer, 0, Array1.Length);
Buffer.BlockCopy(Array2, 0, Buffer, Array1.Length, Array2.Length);
udpClient.Send(Buffer, Buffer.Length);
Потому что, если они большие, а скорость передачи данных высокая, копирование использует много системных ресурсов... Итак, могу ли я как-то сообщить udpClient, что я запускаю фрагментацию UDP, а затем сделать так:
udpClient.ImStartingOneBigDatagram();
udpClient.Send(Array1, Array1.Length);
udpClient.Send(Array2, Array2.Length);
udpClient.ThatsAllFolks();
И быть уверенным, что принимающая сторона получит:
byte[] recv = {1,1,1,2,2,2}
Я использую для этого C#, и мне не нужно использовать UdpClient
, я просто высказал свою точку зрения.