BeardedManStudios.Network.CachedUdpClient.DoBeginSend C# (CSharp) Метод

DoBeginSend() приватный Метод

private DoBeginSend ( byte datagram, int bytes, IPEndPoint endPoint, AsyncCallback requestCallback, object state ) : IAsyncResult
datagram byte
bytes int
endPoint System.Net.IPEndPoint
requestCallback AsyncCallback
state object
Результат IAsyncResult
		IAsyncResult DoBeginSend(byte[] datagram, int bytes,
					  IPEndPoint endPoint,
					  AsyncCallback requestCallback,
					  object state)
		{
			/* Catch EACCES and turn on SO_BROADCAST then,
			 * as UDP sockets don't have it set by default
			 */
			try
			{
				if (endPoint == null)
				{
					return (socket.BeginSend(datagram, 0, bytes, SocketFlags.None, requestCallback, state));
				}
				else
				{
					return (socket.BeginSendTo(datagram, 0, bytes, SocketFlags.None, endPoint, requestCallback, state));
				}
			}
			catch (SocketException ex)
			{
				if (ex.ErrorCode == (int)SocketError.AccessDenied)
				{
					socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
					if (endPoint == null)
					{
						return (socket.BeginSend(datagram, 0, bytes, SocketFlags.None, requestCallback, state));
					}
					else
					{
						return (socket.BeginSendTo(datagram, 0, bytes, SocketFlags.None, endPoint, requestCallback, state));
					}
				}
				else
				{
					throw;
				}
			}
		}