В чем разница между Recieve и BeginRecieve в классе UDPClient в C#? - PullRequest
0 голосов
/ 26 апреля 2020

В настоящее время я пытаюсь go из-за кода на GitHub для UDP-сервера UDP. DNS-сервер предназначен для обеспечения прокси-подобного поведения MITM, поэтому я могу просматривать, перенаправлять или блокировать пакеты DNS. Читая код, я увидел две функции, которые выглядят очень похожими, но я не могу понять разницу между ними. Я пытался просмотреть документацию Microsoft, но это также не помогло мне понять разницу. Это фрагмент кода, на который я ссылаюсь. Рассматриваемый проект, который я читаю, можно найти здесь: Переносимый прокси-сервер DNS

public byte[] directRead()
        {            
            byte[] msg = client.Receive(ref ep);
            return msg;
        }

public void read()
        {
            Console.WriteLine("Initializing Read");
            client.BeginReceive(new AsyncCallback(recvAsync), null);
            Console.WriteLine("Read async started");
        }

В этом случае переменная с именем client является просто экземпляром класса UdpClient и переменной ep является экземпляром класса IPEndPoint.

...