Exportar (0) Imprimir
Expandir todo

UdpClient.BeginReceive (Método)

Actualización: noviembre 2007

Recibe un datagrama de un host remoto de forma asincrónica.

Espacio de nombres:  System.Net.Sockets
Ensamblado:  System (en System.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public IAsyncResult BeginReceive(
	AsyncCallback requestCallback,
	Object state
)
/** @attribute HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true) */
public IAsyncResult BeginReceive(
	AsyncCallback requestCallback,
	Object state
)
public function BeginReceive(
	requestCallback : AsyncCallback, 
	state : Object
) : IAsyncResult

Parámetros

requestCallback
Tipo: System.AsyncCallback
Delegado AsyncCallback que hace referencia al método que se invocará cuando la operación termine.
state
Tipo: System.Object
Objeto definido por el usuario que contiene información sobre la operación de recepción. Este objeto se pasa al delegado requestCallback cuando la operación ha terminado.

Valor devuelto

Tipo: System.IAsyncResult
Objeto IAsyncResult que hace referencia a la recepción asincrónica.

c8s04db1.alert_note(es-es,VS.90).gifNota:

El atributo HostProtectionAttribute aplicado a este tipo o miembro tiene el siguiente valor de la propiedad Resources: ExternalThreading. El atributo HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician haciendo doble clic en un icono, escribiendo un comando o introduciendo una dirección URL en el explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación de SQL Server y atributos de protección del host.

La operación BeginReceive asincrónica debe finalizar llamando al método EndReceive. Normalmente, el método lo invoca el delegado requestCallback.

Este método no se bloquea hasta que termina la operación. Para realizar un bloqueo hasta que termine la operación, utilice el método Receive.

Para obtener información detallada sobre cómo utilizar el modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

En el ejemplo de código siguiente se utiliza BeginReceive para recibir una respuesta del servidor de forma asincrónica.

public static bool messageReceived = false;

public static void ReceiveCallback(IAsyncResult ar)
{
  UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).u;
  IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e;

  Byte[] receiveBytes = u.EndReceive(ar, ref e);
  string receiveString = Encoding.ASCII.GetString(receiveBytes);

  Console.WriteLine("Received: {0}", receiveString);
  messageReceived = true;
}

public static void ReceiveMessages()
{
  // Receive a message and write it to the console.
  IPEndPoint e = new IPEndPoint(IPAddress.Any, listenPort);
  UdpClient u = new UdpClient(e);

  UdpState s = new UdpState();
  s.e = e;
  s.u = u;

  Console.WriteLine("listening for messages");
  u.BeginReceive(new AsyncCallback(ReceiveCallback), s);

  // Do some work while we wait for a message. For this example,
  // we'll just sleep
  while (!messageReceived)
  {
    Thread.Sleep(100);
  }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft