UDP - "ConnectAndSend vs SendTo" - PullRequest
0 голосов
/ 02 марта 2020

Я пишу код для простой библиотеки C#, отвечающей за управление связью UDP в архитектуре клиент / сервер.
Я основал свое общение на классе C# System.Net.Sockets.UdpClient, как для серверной, так и для на стороне клиента; для функции отправки на стороне клиента я видел два возможных варианта:

  1. выполнить один вызов Connect(IPEndPoint endPoint), чтобы указать конечную точку назначения, затем выполнить последующие вызовы Send(byte[] dgram, int bytes), следовательно без указания целевой конечной точки
  2. всегда выполняйте вызовы на Send(byte[] dgram, int bytes, IPEndPoint endPoint), следовательно, указав конечную конечную точку

относительно первого варианта, если требуется другая конечная точка, просто выполните новый вызов Connect.

Я смотрел на MSDN, но все же пара вопросов осталась без ответа:

  • Есть ли какие-либо преимущества при выборе между одним вариантом и другим? ? технически первый кажется мне более чистым и понятным, но второй дает вам это преимущество "Если вы вызываете метод Connect, любые дейтаграммы, которые приходят с адреса, отличного от указанного по умолчанию, будут отброшены «
  • в частности, есть ли какие-либо причины для выбора среди них? опять же, кажется, первый для меня более оптимизирован.
  • зачем предоставлять два разных способа достижения практически одинаковых функциональных возможностей (если не совсем одинаковых)?
...