Condividi tramite


Socket.BeginAccept Metodo

Definizione

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

Overload

BeginAccept(AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

BeginAccept(Int32, AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso e riceve il primo blocco di dati inviato dall'applicazione client.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso da un socket specificato e riceve il primo blocco di dati inviato dall'applicazione client.

BeginAccept(AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

public:
 IAsyncResult ^ BeginAccept(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (AsyncCallback callback, object state);
member this.BeginAccept : AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (callback As AsyncCallback, state As Object) As IAsyncResult

Parametri

callback
AsyncCallback

Delegato AsyncCallback.

state
Object

Oggetto che contiene informazioni sullo stato per questa richiesta.

Restituisce

Oggetto IAsyncResult che fa riferimento alla creazione asincrona di Socket.

Eccezioni

L'oggetto Socket è stato chiuso.

Il socket preposto ad accettare la connessione non è in attesa di connessioni. È necessario chiamare i metodi Bind(EndPoint) e Listen(Int32) prima di chiamare il metodo BeginAccept(AsyncCallback, Object).

-oppure-

Il socket accettato è associato.

receiveSize è minore di 0.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .

I protocolli orientati alla connessione possono usare il BeginAccept metodo per iniziare ad accettare i tentativi di connessione in ingresso. Prima di chiamare il BeginAccept metodo , è necessario chiamare il Listen metodo per restare in ascolto e accodare le richieste di connessione in ingresso.

È possibile passare un callback che implementa AsyncCallback a BeginAccept per ricevere una notifica sul completamento dell'operazione di accettazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginAccept. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginAccept metodo .

L'operazione BeginAccept deve essere completata chiamando il EndAccept metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndAccept blocca il thread chiamante fino al completamento dell'operazione.

Per annullare una chiamata in sospeso al BeginAccept metodo , chiudere .Socket Quando il Close metodo viene chiamato mentre è in corso un'operazione asincrona, viene chiamato il callback fornito al BeginAccept metodo . Una chiamata successiva al EndAccept metodo genererà ( ObjectDisposedException prima di .NET 7) o un SocketException oggetto (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

È possibile usare la RemoteEndPoint proprietà dell'oggetto restituito Socket per identificare l'indirizzo di rete e il numero di porta dell'host remoto.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.

Nota

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

Nota

Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a

BeginAccept(Int32, AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso e riceve il primo blocco di dati inviato dall'applicazione client.

public:
 IAsyncResult ^ BeginAccept(int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parametri

receiveSize
Int32

Numero di byte da accettare dal mittente.

callback
AsyncCallback

Delegato AsyncCallback.

state
Object

Oggetto che contiene informazioni sullo stato per questa richiesta.

Restituisce

Oggetto IAsyncResult che fa riferimento alla creazione asincrona di Socket.

Eccezioni

L'oggetto Socket è stato chiuso.

Il socket preposto ad accettare la connessione non è in attesa di connessioni. È necessario chiamare i metodi Bind(EndPoint) e Listen(Int32) prima di chiamare il metodo BeginAccept(AsyncCallback, Object).

-oppure-

Il socket accettato è associato.

receiveSize è minore di 0.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .

I protocolli orientati alla connessione possono usare il BeginAccept metodo per iniziare ad accettare i tentativi di connessione in ingresso. Prima di chiamare il BeginAccept metodo , è necessario chiamare il Listen metodo per restare in ascolto e accodare le richieste di connessione in ingresso.

È possibile passare un callback che implementa AsyncCallback a BeginAccept per ricevere una notifica sul completamento dell'operazione di accettazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginAccept. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginAccept metodo .

L'operazione BeginAccept deve essere completata chiamando il EndAccept metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndAccept blocca il thread chiamante fino al completamento dell'operazione.

Per annullare una chiamata in sospeso al BeginAccept metodo , chiudere .Socket Quando il Close metodo viene chiamato mentre è in corso un'operazione asincrona, viene chiamato il callback fornito al BeginAccept metodo . Una chiamata successiva al EndAccept metodo genererà ( ObjectDisposedException prima di .NET 7) o un SocketException oggetto (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

È possibile usare la RemoteEndPoint proprietà dell'oggetto restituito Socket per identificare l'indirizzo di rete e il numero di porta dell'host remoto.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.

Nota

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

Nota

Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a

BeginAccept(Socket, Int32, AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso da un socket specificato e riceve il primo blocco di dati inviato dall'applicazione client.

public:
 IAsyncResult ^ BeginAccept(System::Net::Sockets::Socket ^ acceptSocket, int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : System.Net.Sockets.Socket * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (acceptSocket As Socket, receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parametri

acceptSocket
Socket

Oggetto Socket accettato. Questo valore può essere null.

receiveSize
Int32

Il numero massimo dei byte da ricevere.

callback
AsyncCallback

Delegato AsyncCallback.

state
Object

Oggetto che contiene informazioni sullo stato per questa richiesta.

Restituisce

Oggetto IAsyncResult che fa riferimento alla creazione asincrona dell'oggetto Socket.

Eccezioni

L'oggetto Socket è stato chiuso.

Il socket preposto ad accettare la connessione non è in attesa di connessioni. È necessario chiamare i metodi Bind(EndPoint) e Listen(Int32) prima di chiamare il metodo BeginAccept(AsyncCallback, Object).

-oppure-

Il socket accettato è associato.

receiveSize è minore di 0.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per il nuovo sviluppo. Usare invece gli Taskequivalenti basati su base.

I protocolli orientati alla connessione possono usare il metodo per avviare l'accettazione BeginAccept di tentativi di connessione in ingresso. L'operazione di accettazione risultante è rappresentata dall'oggetto restituito IAsyncResult anche se può completare in modo sincrono. Prima di chiamare il metodo, è necessario chiamare il BeginAcceptListen metodo per ascoltare e accodare le richieste di connessione in ingresso.

È possibile passare un callback che implementa AsyncCallback a BeginAccept per ricevere una notifica sul completamento dell'operazione di accettazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginAccept. In questo caso, la CompletedSynchronously proprietà sul restituito verrà impostata IAsyncResult su per true indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto state passato al BeginAccept metodo .

L'operazione BeginAccept deve essere completata chiamando il EndAccept metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndAccept blocca il thread chiamante fino al completamento dell'operazione.

Per annullare una chiamata in sospeso al BeginAccept metodo, chiudere .Socket Quando il Close metodo viene chiamato mentre un'operazione asincrona è in corso, viene chiamato il BeginAccept callback fornito al metodo. Una chiamata successiva al EndAccept metodo genererà un ObjectDisposedException oggetto (prima di .NET 7) o un SocketException (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

È possibile usare la RemoteEndPoint proprietà del restituito Socket per identificare l'indirizzo di rete e il numero di porta dell'host remoto.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.

Nota

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

Nota

Il contesto di esecuzione (contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un particolare contesto (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a