Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo UdpClient.BeginSend (Byte[], Int32, String, Int32, AsyncCallback, Object)

 

Data di pubblicazione: novembre 2016

Invia un datagramma a una destinazione in modo asincrono. La destinazione è specificata dal nome dell'host e numero di porta.

Spazio dei nomi:   System.Net.Sockets
Assembly:  System (in System.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public IAsyncResult BeginSend(
	byte[] datagram,
	int bytes,
	string hostname,
	int port,
	AsyncCallback requestCallback,
	object state
)

Parametri

datagram
Type: System.Byte[]

Oggetto Byte matrice che contiene i dati da inviare.

bytes
Type: System.Int32

Il numero di byte da inviare.

hostname
Type: System.String

L'host di destinazione.

port
Type: System.Int32

Il numero di porta di destinazione.

requestCallback
Type: System.AsyncCallback

Delegato AsyncCallback cui fa riferimento il metodo da richiamare al completamento dell'operazione.

state
Type: System.Object

Oggetto definito dall'utente che contiene informazioni sull'operazione di invio. Questo oggetto viene passato al delegato requestCallback al completamento dell'operazione.

Valore restituito

Type: System.IAsyncResult

Un IAsyncResult che fa riferimento all'invio asincrono.

Asincrona BeginSend operazione deve essere completata chiamando il EndSend metodo. In genere, il metodo viene richiamato dal requestCallback delegare.

Questo metodo si blocca fino al completamento dell'operazione. Per bloccare fino al completamento dell'operazione, utilizzare uno del Send overload del metodo.

Per informazioni dettagliate sull'utilizzo del modello di programmazione asincrono, vedere Calling Synchronous Methods Asynchronously.

Nell'esempio di codice viene illustrato come utilizzare BeginSend in grado di inviare in modo asincrono una richiesta al server.

public static bool messageSent = false;

public static void SendCallback(IAsyncResult ar)
{
  UdpClient u = (UdpClient)ar.AsyncState;

  Console.WriteLine("number of bytes sent: {0}", u.EndSend(ar));
  messageSent = true;
}
static void SendMessage3(string server, string message)
{
  // create the udp socket
  UdpClient u = new UdpClient();

  Byte [] sendBytes = Encoding.ASCII.GetBytes(message);

  // send the message
  // the destination is defined by the server name and port
  u.BeginSend(sendBytes, sendBytes.Length, server, listenPort,
              new AsyncCallback(SendCallback), u);

  // Do some work while we wait for the send to complete. For 
  // this example, we'll just sleep
  while (!messageSent)
  {
    Thread.Sleep(100);
  }
}

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: