Это, возможно, глупый вопрос, но поскольку я относительно новичок в 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
, я просто высказывал свою точку зрения.