Lokhu mhlawumbe ngumbuzo oyisiphukuphuku, kepha njengoba ngimusha ku-UDP nakhu uya ... Uma nginezinhlu zamabhayithi ezihlukene ezimbili engidinga uhlangothi olutholayo ukuze ngithole uhlu olukhulu olulodwa, ngokwesibonelo:
byte[] Array1 = {1,1,1}
byte[] Array2 = {2,2,2}
Ngingakugwema yini kufanele wakhe i-buffer bese ukopisha uhlu ngalunye kuwo, bese uthumela leyo buffer, kanjena:
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);
Ngoba uma lokhu kukhulu, nesilinganiso sedatha siphezulu, ukukopisha kusebenzisa kakhulu izinsiza zohlelo ... Ngakho-ke ngandlela thile ngingatshela i-udpClient ukuthi ngiqala ukuhlukaniswa kwe-UDP, bese ngenza kanjena:
udpClient.ImStartingOneBigDatagram();
udpClient.Send(Array1, Array1.Length);
udpClient.Send(Array2, Array2.Length);
udpClient.ThatsAllFolks();
Futhi uqiniseke ukuthi uhlangothi olutholayo luzothola:
byte[] recv = {1,1,1,2,2,2}
Ngisebenzisa i-C # yalokhu, futhi angidingi ukusebenzisa UdpClient
, bengisanda kwenza iphuzu lami.