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 Socket.EndAccept (IAsyncResult)

 

Data di pubblicazione: ottobre 2016

Accetta un tentativo di connessione in ingresso in modo asincrono e crea un nuovo Socket per gestire le comunicazioni host remoto.

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

public Socket EndAccept(
	IAsyncResult asyncResult
)

Parametri

asyncResult
Type: System.IAsyncResult

Un IAsyncResult che archivia informazioni sullo stato per questa operazione asincrona, nonché i dati definiti dall'utente.

Valore restituito

Type: System.Net.Sockets.Socket

Oggetto Socket per gestire la comunicazione con l'host remoto.

Exception Condition
ArgumentNullException

asyncResult è null.

ArgumentException

asyncResult non è stato creato da una chiamata a BeginAccept.

SocketException

Si è verificato un errore durante il tentativo di accesso al socket. Per altre informazioni, vedere la sezione Osservazioni.

ObjectDisposedException

L'oggetto Socket è stato chiuso.

InvalidOperationException

EndAccept metodo sia stato precedentemente chiamato.

NotSupportedException

Windows NT è necessaria per questo metodo.

EndAccept completa una chiamata a BeginAccept. Prima di chiamare BeginAccept, è necessario creare un metodo di callback che implementa il AsyncCallback delegare. Questo metodo di callback viene eseguita in un thread separato e viene chiamato dal sistema dopo il BeginAccept restituzione del metodo. Deve accettare il asyncResult restituito dal parametro di BeginAccept metodo.

All'interno del metodo di callback, chiamare il AsyncState metodo il asyncResult parametro per ottenere il Socket su cui viene effettuato il tentativo di connessione. Dopo aver ottenuto il Socket, è possibile chiamare il EndAccept metodo per completare il tentativo di connessione.

Il EndAccept metodo si blocca fino a quando non è una connessione in sospeso nella coda di connessioni in ingresso. Il EndAccept metodo accetta la connessione in ingresso e restituisce un nuovo Socket che può essere utilizzato per inviare e ricevere dati dall'host remoto.

System_CAPS_noteNota

Se si riceve un SocketException, utilizzare il SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo avere ottenuto il codice, fare riferimento alla versione di Windows Sockets API errore codice documentazione 2 in MSDN library per una descrizione dettagliata dell'errore.

System_CAPS_noteNota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Tracciatura di rete in .NET Framework.

Esempio di codice seguente termina una richiesta asincrona e crea un nuovo Socket per accettare una richiesta di connessione in ingresso. Per un esempio completo che illustri le comunicazioni asincrone con i socket, vedere Esempi di codice socket.

public static void Listen_Callback(IAsyncResult ar){
     allDone.Set();
     Socket s = (Socket) ar.AsyncState;
     Socket s2 = s.EndAccept(ar);
     StateObject so2 = new StateObject();
     so2.workSocket = s2;
     s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0,
	                       new AsyncCallback(Async_Send_Receive.Read_Callback), so2);	
}

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