UDP - Ngingathumela izingxenye ezimbili zedatha, futhi ngenze ukuphela kokuthola kuzihlanganise kube munye?

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.

5
задан Matt 24 June 2015 в 11:48
поделиться